# frozen_string_literal: true module Uricp::CurlPrimitives attr_reader :options def from options['from_uri'] end def from=(target) options['from_uri'] = target end def to options['to_uri'] end def to=(target) options['to_uri'] = target end def curl_command 'curl --fail --silent' end def authentication "-H X-Auth-Token:#{options['authenticator'].call}" if http_authentication? end def http_authentication? options['authenticator'] end def curl_upload_from(source, destination = to) "#{curl_command} #{authentication} -T #{source} #{destination};" end def curl_download_to_pipe "#{curl_command} #{authentication} #{from} |" end def curl_manifest(object_manifest, destination = to) "#{curl_command} #{authentication} -X PUT -H 'X-Object-Manifest: #{object_manifest}' #{destination} --data-binary ''" end end