Skip to content

Instantly share code, notes, and snippets.

@pieter
Created July 22, 2008 15:04
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save pieter/1059 to your computer and use it in GitHub Desktop.
Save pieter/1059 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# Made by Pieter de Bie <frimmirf@gmail.com>
# Based on a "Pastie" task by someone
require "tempfile"
GIST_URL = 'http://gist.github.com/gists'
GIST_LOGIN_URL = 'https://gist.github.com/session'
USERNAME = "pieter"
TOKEN = "SweetTokenPower"
def create_snippet(filename, extension, data)
text_file = Tempfile.open('w+')
text_file << data
text_file.flush
cmd = <<-EOS
curl #{GIST_URL} \
-s -L -o /dev/null -w "%{url_effective}" \
-F "file_ext[gistfile1]=#{extension}" \
-F "file_name[gistfile1]=#{filename}" \
-F "login=#{USERNAME}" \
-F "token=#{TOKEN}" \
-F "file_contents[gistfile1]=<#{text_file.path}" \
-F "x=27" \
-F "y=27"
EOS
url = %x{#{cmd}}
text_file.close(true)
return url
end
if ARGV.include? "-p"
data = `pbpaste`
elsif !ARGV.empty?
@filename = ARGV.shift
data = File.read(File.expand_path(@filename))
elsif ENV["FILE"]
@filename = ENV["FILE"]
data = File.read(File.expand_path(ENV["FILE"]))
else
data = STDIN.read
end
@filename ||= "Unnamed File"
@extension = File.extname(@filename)
@extension = "txt" if @extension == ""
url = create_snippet(@filename, @extension, data)
`echo #{url} | pbcopy`
puts "Copied to pasteboard: #{url}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment