#!/usr/bin/env ruby # Made by Pieter de Bie # 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}"