class Object
Constants
- CSV_CURL_ARGV
- OPTPARSE
- TMP_REQUEST_BODY_FILE
Public Instance Methods
build_curl_command(curl_args, data, request_file, response_file)
click to toggle source
# File bin/csv-curl, line 127 def build_curl_command(curl_args, data, request_file, response_file) cmd = "curl -s" cmd += " -d@#{request_file} " if request_file cmd += ' ' + curl_args.map { |arg| Shellwords.escape(generate_string(arg, data)) }.join(' ') cmd += " > #{response_file}" cmd end
build_exec_command(exec, data, response_file)
click to toggle source
# File bin/csv-curl, line 135 def build_exec_command(exec, data, response_file) cmd = "cat #{response_file} | " cmd += generate_string(exec, data) cmd end
failed(msg, errno = 1)
click to toggle source
# File bin/csv-curl, line 49 def failed(msg, errno = 1) $stderr.puts msg if errno == 1 puts "" puts OPTPARSE end exit errno end
format_value(value, format)
click to toggle source
# File bin/csv-curl, line 82 def format_value(value, format) return '' unless value case format when 'json' value = value.to_json value.sub!(/\A"/, '') value.sub!(/"\z/, '') value when 'query', 'param' CGI.escape(value) when 'base64' Base64.strict_encode64(value) when 'urlsafe64' Base64.urlsafe_encode64(value) when 'hex' value.unpack('H*').first when 'shellword', 'shell' Shellword.escape(value) else value end end
generate_string(str, data)
click to toggle source
# File bin/csv-curl, line 108 def generate_string(str, data) str.gsub(/\{\{(.*?)\}\}/) do format, key = if $1.include?(':') $1.split(':', 2) else [nil, $1] end format_value(data[key], format) end end
run_command_safely(cmd)
click to toggle source
# File bin/csv-curl, line 121 def run_command_safely(cmd) res = `#{cmd}` failed("failed to run command: #{cmd}", 2) unless $?.success? res end