diff --git a/gist b/gist deleted file mode 100755 index 9099eb7..0000000 --- a/gist +++ /dev/null @@ -1,603 +0,0 @@ -#!/usr/bin/env ruby -# encoding: utf-8 -# -# This file, gist, is generated code. -# Please DO NOT EDIT or send patches for it. -# -# Please take a look at the source from -# http://github.com/defunkt/gist -# and submit patches against the individual files -# that build gist. -# - -module Gist - module Manpage - extend self - - def display(name) - puts manpage(name) - end - - def manpage(name) - return "** Can't find groff(1)" unless groff? - - require 'open3' - out = nil - Open3.popen3(groff_command) do |stdin, stdout, _| - stdin.puts raw_manpage(name) - stdin.close - out = stdout.read.strip - end - out - end - - def raw_manpage(name) - if File.exists? file = File.dirname(__FILE__) + "/../../man/#{name}.1" - File.read(file) - else - DATA.read.split("__CACERT__").first - end - end - - def groff? - system("which groff > /dev/null") - end - - def groff_command - "groff -Wall -mtty-char -mandoc -Tascii" - end - - def puts(*args) - page_stdout - super - end - - def page_stdout - return unless $stdout.tty? - - read, write = IO.pipe - - if Kernel.fork - $stdin.reopen(read) - read.close - write.close - - ENV['LESS'] = 'FSRX' - - Kernel.select [STDIN] - - pager = ENV['PAGER'] || 'less -isr' - pager = 'cat' if pager.empty? - - exec pager rescue exec "/bin/sh", "-c", pager - else - $stdout.reopen(write) - $stderr.reopen(write) if $stderr.tty? - read.close - write.close - end - end - end -end -module Gist - VERSION = Version = '3.0.1' -end -require 'open-uri' -require 'net/https' -require 'optparse' - -require 'rubygems' -require 'json' -require 'base64' - -require 'gist/manpage' unless defined?(Gist::Manpage) -require 'gist/version' unless defined?(Gist::Version) - -module Gist - extend self - - GIST_URL = 'https://api.github.com/gists/%s' - CREATE_URL = 'https://api.github.com/gists' - - if ENV['HTTPS_PROXY'] - PROXY = URI(ENV['HTTPS_PROXY']) - elsif ENV['HTTP_PROXY'] - PROXY = URI(ENV['HTTP_PROXY']) - else - PROXY = nil - end - PROXY_HOST = PROXY ? PROXY.host : nil - PROXY_PORT = PROXY ? PROXY.port : nil - - def execute(*args) - private_gist = defaults["private"] - gist_filename = nil - gist_extension = defaults["extension"] - browse_enabled = defaults["browse"] - description = nil - - opts = OptionParser.new do |opts| - opts.banner = "Usage: gist [options] [filename or stdin] [filename] ...\n" + - "Filename '-' forces gist to read from stdin." - - opts.on('-p', '--[no-]private', 'Make the gist private') do |priv| - private_gist = priv - end - - t_desc = 'Set syntax highlighting of the Gist by file extension' - opts.on('-t', '--type [EXTENSION]', t_desc) do |extension| - gist_extension = '.' + extension - end - - opts.on('-d','--description DESCRIPTION', 'Set description of the new gist') do |d| - description = d - end - - opts.on('-o','--[no-]open', 'Open gist in browser') do |o| - browse_enabled = o - end - - opts.on('-m', '--man', 'Print manual') do - Gist::Manpage.display("gist") - end - - opts.on('-v', '--version', 'Print version') do - puts Gist::Version - exit - end - - opts.on('-h', '--help', 'Display this screen') do - puts opts - exit - end - end - - begin - - opts.parse!(args) - - if $stdin.tty? && args[0] != '-' - - if args.empty? - puts opts - exit - end - - files = args.inject([]) do |files, file| - abort "Can't find #{file}" unless File.exists?(file) - - files.push({ - :input => File.read(file), - :filename => file, - :extension => (File.extname(file) if file.include?('.')) - }) - end - - else - input = $stdin.read - files = [{:input => input, :extension => gist_extension}] - end - - url = write(files, private_gist, description) - browse(url) if browse_enabled - puts copy(url) - rescue => e - warn e - puts opts - end - end - - def write(files, private_gist = false, description = nil) - url = URI.parse(CREATE_URL) - - if PROXY_HOST - proxy = Net::HTTP::Proxy(PROXY_HOST, PROXY_PORT) - http = proxy.new(url.host, url.port) - else - http = Net::HTTP.new(url.host, url.port) - end - - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_PEER - http.ca_file = ca_cert - - req = Net::HTTP::Post.new(url.path) - req.body = JSON.generate(data(files, private_gist, description)) - - user, password = auth() - if user && password - req.basic_auth(user, password) - end - - response = http.start{|h| h.request(req) } - case response - when Net::HTTPCreated - JSON.parse(response.body)['html_url'] - else - puts "Creating gist failed: #{response.code} #{response.message}" - exit(false) - end - end - - def read(gist_id) - data = JSON.parse(open(GIST_URL % gist_id).read) - data["files"].map{|name, content| content['content'] }.join("\n\n") - end - - def browse(url) - if RUBY_PLATFORM =~ /darwin/ - `open #{url}` - elsif RUBY_PLATFORM =~ /linux/ - `#{ENV['BROWSER']} #{url}` - elsif ENV['OS'] == 'Windows_NT' or - RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw|wince/i - `start "" "#{url}"` - end - end - - def copy(content) - cmd = case true - when system("type pbcopy > /dev/null 2>&1") - :pbcopy - when system("type xclip > /dev/null 2>&1") - :xclip - when system("type putclip > /dev/null 2>&1") - :putclip - end - - if cmd - IO.popen(cmd.to_s, 'r+') { |clip| clip.print content } - end - - content - end - -private - def data(files, private_gist, description) - i = 0 - file_data = {} - files.each do |file| - i = i + 1 - filename = file[:filename] ? file[:filename] : "gistfile#{i}" - file_data[filename] = {:content => file[:input]} - end - - data = {"files" => file_data} - data.merge!({ 'description' => description }) unless description.nil? - data.merge!({ 'public' => false }) if private_gist - data - end - - def auth - user = config("github.user") - password = config("github.password") - - token = config("github.token") - if password.to_s.empty? && !token.to_s.empty? - abort "Please set GITHUB_PASSWORD or github.password instead of using a token." - end - - if user.to_s.empty? || password.to_s.empty? - nil - else - [ user, password ] - end - end - - def defaults - extension = config("gist.extension") - - return { - "private" => config("gist.private"), - "browse" => config("gist.browse"), - "extension" => extension - } - end - - def config(key) - env_key = ENV[key.upcase.gsub(/\./, '_')] - return env_key if env_key and not env_key.strip.empty? - - str_to_bool `git config --global #{key}`.strip - end - - def str_to_bool(str) - if str.size > 0 and str[0].chr == '!' - command = str[1, str.length] - value = `#{command}` - else - value = str - end - - case value.downcase.strip - when "false", "0", "nil", "", "no", "off" - nil - when "true", "1", "yes", "on" - true - else - value - end - end - - def ca_cert - cert_file = [ - File.expand_path("../gist/cacert.pem", __FILE__), - "/tmp/gist_cacert.pem" - ].find{|l| File.exist?(l) } - - if cert_file - cert_file - else - File.open("/tmp/gist_cacert.pem", "w") do |f| - f.write(DATA.read.split("__CACERT__").last) - end - "/tmp/gist_cacert.pem" - end - end - -end -Gist.execute(*ARGV) -__END__ -.\" generated with Ronn/v0.7.3 -.\" http://github.com/rtomayko/ronn/tree/0.7.3 -. -.TH "GIST" "1" "March 2012" "GITHUB" "Gist Manual" -. -.SH "NAME" -\fBgist\fR \- gist on the command line -. -.SH "SYNOPSIS" -\fBgist\fR [\fB\-p\fR] [\fB\-t extension\fR] \fIFILE|\-\fR -. -.SH "DESCRIPTION" -\fBgist\fR can be used to create gists on gist\.github\.com from the command line\. There are two primary methods of creating gists\. -. -.P -If standard input is supplied, it will be used as the content of the new gist\. If \fIFILE\fR is provided, the content of that file will be used to create the gist\. If \fIFILE\fR is \'\-\' then gist will wait for content from standard input\. -. -.P -Once your gist is successfully created, the URL will be copied to your clipboard\. If you are on OS X, \fBgist\fR will open the gist in your browser, too\. -. -.SH "OPTIONS" -\fBgist\fR\'s default mode of operation is to read content from standard input and create a public, text gist without description from it, tied to your GitHub account if you user and passwordare provided (see \fBCONFIGURATION\fR)\. -. -.P -These options can be used to change this behavior: -. -.TP -\fB\-p\fR, \fB\-\-private\fR -Create a private gist instead of a public gist\. -. -.TP -\fB\-t\fR, \fB\-\-type\fR -Set the file extension explicitly\. Passing a type of \fBrb\fR ensures the gist is created as a Ruby file\. -. -.TP -\fB\-d\fR, \fB\-\-description\fR -Set a description\. -. -.TP -\fB\-o\fR, \fB\-\-[no\-]open\fR -Open the gist in your browser after creation\. Or don\'t\. Defaults to \-\-open -. -.P -You may additionally ask for help: -. -.TP -\fB\-h\fR, \fB\-\-help\fR -Print help\. -. -.TP -\fB\-m\fR, \fB\-\-man\fR -Display this man page\. -. -.SH "AUTHENTICATION" -There are two ways to set GitHub user and password info: -. -.IP "\(bu" 4 -Using environment vars GITHUB_USER and GITHUB_PASSWORD -. -.IP -$ export GITHUB_USER=johndoe -. -.br -$ export GITHUB_PASSWORD=mysecretgithubpassword -. -.br -$ gist ~/example -. -.IP "\(bu" 4 -Using git\-config(1) -. -.IP "" 0 -. -.P -Use git\-config(1) to display the currently configured GitHub username: -. -.IP "" 4 -. -.nf - -$ git config \-\-global github\.user -. -.fi -. -.IP "" 0 -. -.P -Or, set the GitHub username with: -. -.IP "" 4 -. -.nf - -$ git config \-\-global github\.user -. -.fi -. -.IP "" 0 -. -.P -See \fIhttp://github\.com/guides/local\-github\-config\fR for more information\. -. -.SH "CONFIGURATION" -You can set a few options in your git config (using git\-config(1)) to control the default behavior of gist(1)\. -. -.IP "\(bu" 4 -gist\.private \- boolean (yes or no) \- Determines whether to make a gist private by default -. -.IP "\(bu" 4 -gist\.extension \- string \- Default extension for gists you create\. -. -.IP "\(bu" 4 -gist\.browse \- boolean (yes or no) \- Whether to open the gist in your browser after creation\. Default: yes -. -.IP "" 0 -. -.SH "ENVIRONMENT" -The following environment variables affect the execution of \fBgist\fR: -. -.IP "\(bu" 4 -HTTP_PROXY \- Proxy to use when Gisting\. Should be "http://host:port/" -. -.IP "" 0 -. -.SH "EXAMPLES" -. -.nf - -$ gist < file\.txt -$ echo secret | gist \-\-private -$ echo "puts :hi" | gist \-t rb -$ gist script\.py -$ gist \- -the quick brown fox jumps over the lazy dog -^D -. -.fi -. -.SH "BUGS" -\fIhttp://github\.com/defunkt/gist/issues\fR -. -.SH "AUTHOR" -Chris Wanstrath :: chris@ozmm\.org -. -.SH "SEE ALSO" -hub(1), git(1), git\-clone(1), \fIhttp://github\.com\fR, \fIhttp://github\.com/defunkt/gist\fR -__CACERT__ -Certificate chain - 0 s:/O=*.github.com/OU=Domain Control Validated/CN=*.github.com - i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287 ------BEGIN CERTIFICATE----- -MIIFVTCCBD2gAwIBAgIHBGX+dPs18DANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAY -BgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydGlm -aWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkxMDAuBgNVBAMTJ0dvIERhZGR5 -IFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTERMA8GA1UEBRMIMDc5Njky -ODcwHhcNMDkxMjExMDUwMjM2WhcNMTQxMjExMDUwMjM2WjBRMRUwEwYDVQQKEwwq -LmdpdGh1Yi5jb20xITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEV -MBMGA1UEAxMMKi5naXRodWIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA7dOJw11wcgnzM08acnTZtlqVULtoYZ/3+x8Z4doEMa8VfBp/+XOvHeVD -K1YJAEVpSujEW9/Cd1JRGVvRK9k5ZTagMhkcQXP7MrI9n5jsglsLN2Q5LLcQg3LN -8OokS/rZlC7DhRU5qTr2iNr0J4mmlU+EojdOfCV4OsmDbQIXlXh9R6hVg+4TyBka -szzxX/47AuGF+xFmqwldn0xD8MckXilyKM7UdWhPJHIprjko/N+NT02Dc3QMbxGb -p91i3v/i6xfm/wy/wC0xO9ZZovLdh0pIe20zERRNNJ8yOPbIGZ3xtj3FRu9RC4rG -M+1IYcQdFxu9fLZn6TnPpVKACvTqzQIDAQABo4IBtjCCAbIwDwYDVR0TAQH/BAUw -AwEBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH/BAQD -AgWgMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Rz -MS0xMS5jcmwwUwYDVR0gBEwwSjBIBgtghkgBhv1tAQcXATA5MDcGCCsGAQUFBwIB -FitodHRwOi8vY2VydGlmaWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMIGA -BggrBgEFBQcBAQR0MHIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmdvZGFkZHku -Y29tLzBKBggrBgEFBQcwAoY+aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv -bS9yZXBvc2l0b3J5L2dkX2ludGVybWVkaWF0ZS5jcnQwHwYDVR0jBBgwFoAU/axh -MpNsRdbi7oVfmrrndplozOcwIwYDVR0RBBwwGoIMKi5naXRodWIuY29tggpnaXRo -dWIuY29tMB0GA1UdDgQWBBSH0Y8ZbuSHb1OMd5EHUN+jv1VHIDANBgkqhkiG9w0B -AQUFAAOCAQEAwIe/Bbuk1/r38aqb5wlXjoW6tAmLpzLRkKorDOcDUJLtN6a9XqAk -cgMai7NCI1YV+A4IjEENj53mV2xWLpniqLDHI5y2NbQuL2deu1jQSSNz7xE/nZCk -WGt8OEtm6YI2bUsq5EXy078avRbigBko1bqtFuG0s5+nFrKCjhQVIk+GX7cwiyr4 -XJ49FxETvePrxNYr7x7n/Jju59KXTw3juPET+bAwNlRXmScjrMylMNUMr3sFcyLz -DciaVnnextu6+L0w1+5KNVbMKndRwgg/cRldBL4AgmtouTC3mlDGGG3U6eV75cdH -D03DXDfrYYjxmWjTRdO2GdbYnt1ToEgxyA== ------END CERTIFICATE----- - 1 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287 - i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority ------BEGIN CERTIFICATE----- -MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx -ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw -MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH -QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j -b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j -b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H -KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm -VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR -SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT -cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ -6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu -MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS -kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB -BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f -BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv -c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH -AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO -BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG -OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU -A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o -0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX -RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH -qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV -U+4= ------END CERTIFICATE----- - 2 s:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority - i:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com ------BEGIN CERTIFICATE----- -MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh -bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu -Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g -QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe -BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX -DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE -YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC -ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q -N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO -r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN -f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH -U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU -TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb -VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg -SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv -biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg -MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw -AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv -ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu -Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd -IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv -bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1 -QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O -WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf -SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw== ------END CERTIFICATE----- - 3 s:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com - i:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 -IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz -BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y -aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG -9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy -NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y -azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw -Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl -cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY -dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 -WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS -v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v -UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu -IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC -W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd ------END CERTIFICATE----- diff --git a/gist-3.0.1.gem b/gist-3.0.1.gem new file mode 100644 index 0000000..e6520bd Binary files /dev/null and b/gist-3.0.1.gem differ diff --git a/gist.sublime-project b/gist.sublime-project new file mode 100644 index 0000000..761ce70 --- /dev/null +++ b/gist.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "/D/dropbox/WorkSpaces/RubySpace/gist" + } + ] +} diff --git a/gist.sublime-workspace b/gist.sublime-workspace new file mode 100644 index 0000000..49878ec --- /dev/null +++ b/gist.sublime-workspace @@ -0,0 +1,603 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "ins", + "insheet-string insheet_string" + ], + [ + "ge", + "gre grep(/pattern/) { |match| .. }" + ], + [ + "do", + "dob Insert do |variable| … end" + ], + [ + "def", + "def def … end" + ], + [ + "put", + "putc (function)" + ], + [ + "pri", + "print (function)" + ], + [ + "tes", + "testing (function)" + ], + [ + "eac", + "each (function)" + ], + [ + "times", + "times (function)" + ], + [ + "res", + "rescue (function)" + ] + ] + }, + "buffers": + [ + ], + "build_system": "", + "command_palette": + { + "height": 392.0, + "selected_items": + [ + [ + "Snippet: ", + "Snippet: #!/usr/bin/env" + ], + [ + "proj", + "Project: Close" + ], + [ + "project", + "Project: Close" + ], + [ + "package", + "Package Control: Install Package" + ], + [ + "pack", + "Package Control: Upgrade Package" + ], + [ + "git", + "Git: Custom Command" + ], + [ + "ruby", + "Set Syntax: Ruby" + ], + [ + "comm", + "Git: Custom Command" + ], + [ + "gitk", + "Git: Quick Commit" + ], + [ + "git cu", + "Git: Custom Command" + ], + [ + "install ", + "Package Control: Install Package" + ], + [ + "plain", + "Set Syntax: Plain Text" + ], + [ + "text", + "Set Syntax: reStructuredText" + ], + [ + "mul", + "Set Syntax: MultiMarkdown" + ], + [ + "mark", + "Set Syntax: Markdown" + ], + [ + "yam", + "Set Syntax: YAML" + ], + [ + "xml", + "Set Syntax: XML" + ], + [ + "arb", + "Git: Arbitrary Command" + ], + [ + "rails", + "Set Syntax: Ruby on Rails" + ], + [ + "close", + "Project: Close" + ], + [ + "acc", + "Snippet: attr_accessor .." + ], + [ + "each", + "Snippet: each { |e| .. }" + ], + [ + "git add", + "Git: Add Current File" + ], + [ + "open", + "View: Toggle Open Files in Side Bar" + ], + [ + "", + "About" + ], + [ + "termin", + "Git: Terminal Command" + ], + [ + "term", + "Git: Terminal Command" + ], + [ + "git ", + "Git: Custom Command" + ], + [ + "git stat", + "Git: Status" + ], + [ + "git com", + "Set Syntax: Git Commit Message" + ], + [ + "git gui", + "Git: Graph Current File" + ], + [ + "git commit", + "Git: Commit" + ], + [ + "gitcom", + "Git: Commit" + ], + [ + "instal", + "Package Control: Install Package" + ], + [ + "inst", + "Package Control: Install Package" + ], + [ + "install", + "Package Control: Install Package" + ], + [ + "f", + "Snippet: find { |e| .. }" + ], + [ + "fold", + "Code Folding: Unfold All" + ], + [ + "folding", + "Code Folding: Fold Tag Attributes" + ], + [ + "#!", + "Snippet: #!/usr/bin/env ruby -wKU" + ], + [ + "snippets", + "Snippet: #!/usr/bin/env ruby -wKU" + ], + [ + "insl", + "Package Control: Install Package" + ], + [ + "Package Control: instal", + "Package Control: Install Package" + ] + ], + "width": 536.0 + }, + "console": + { + "height": 239.0 + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/D/dropbox/WorkSpaces/RubySpace/catspeak/test.rb", + "/D/dropbox/WorkSpaces/RubySpace/test_octopress/.gitignore", + "/D/dropbox/Programs/Notepad++/config.xml", + "/C/Users/tomtom/Desktop/a.txt", + "/D/dropbox/WorkSpaces/RubySpace/lorem/lorem.gemspec", + "/D/dropbox/WorkSpaces/RubySpace/michelle/test/client_call2.rb", + "/D/dropbox/WorkSpaces/VSSpace/Projects/Michelle/Michelle/bin/ruby/bin/irb", + "/D/dropbox/WorkSpaces/VSSpace/Projects/Michelle/Michelle/bin/ruby/share/man/man1/ruby.1", + "/D/dropbox/WorkSpaces/VSSpace/Projects/Michelle/Michelle/bin/ruby/share/man/man1/irb.1", + "/D/dropbox/WorkSpaces/RubySpace/michelle/test.txt", + "/D/dropbox/WorkSpaces/test2.txt", + "/D/dropbox/WorkSpaces/test.txt", + "/D/dropbox/WorkSpaces/diff.txt", + "/D/dropbox/WorkSpaces/RubySpace/michelle/Gemfile", + "/D/dropbox/WorkSpaces/RubySpace/michelle/Rakefile", + "/D/dropbox/WorkSpaces/RubySpace/michelle/lib/michelle/server.rb", + "/D/dropbox/WorkSpaces/RubySpace/michelle/test/test_code.rb", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/Preferences.sublime-settings", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/User/Ruby.sublime-settings", + "/D/dropbox/WorkSpaces/RubySpace/michelle/test.rb", + "/D/dropbox/WorkSpaces/RubySpace/michelle/a.gemspec", + "/D/dropbox/WorkSpaces/RubySpace/michelle/lib/testing.rb", + "/D/dropbox/WorkSpaces/RubySpace/michelle/lib/testing.txt", + "/D/dropbox/WorkSpaces/RubySpace/lorem/lib/lorem/version.rb", + "/D/dropbox/WorkSpaces/RubySpace/lorem/lib/lorem/lorem2.rb", + "/D/dropbox/WorkSpaces/RubySpace/lorem/lib/lorem/lorem3.rb", + "/D/dropbox/WorkSpaces/RubySpace/lorem/lib/lorem.rb", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Terminal/Default (Windows).sublime-keymap", + "/C/Users/tomtom/Desktop/ruby.properties", + "/D/dropbox/WorkSpaces/RubySpace/auto_click/auto_click.sublime-project", + "/D/dropbox/WorkSpaces/RubySpace/auto_click/auto_click.sublime-workspace", + "/D/dropbox/WorkSpaces/RubySpace/auto_click/.gitignore", + "/C/Recovery.txt", + "/S/Recycler/Text/2008.txt", + "/C/Users/tomtom/Desktop/a.do", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Stata/test.sublime-snippet", + "/C/Users/tomtom/Desktop/testing.do", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Stata/genlog.sublime-snippet", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Stata/logging.sublime-snippet", + "/C/Users/tomtom/Desktop/group_by_search.rb", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/.project", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/Gemfile", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/User/Preferences.sublime-settings", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/CHANGELOG", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/Rakefile", + "/C/Users/tomtom/Desktop/abc.txt", + "/C/Users/tomtom/Desktop/mmdays - insurance.txt", + "/C/Users/tomtom/Desktop/New Text Document.txt", + "/D/Dropbox/programs/Sublime_Text/subl.bat", + "/C/Users/tomtom/Desktop/test.rbw", + "/C/Users/tomtom/Desktop/test.rb", + "/D/Dropbox/Public/email to lskc.txt", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/User/Preferences.sublime-settings", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Default/Preferences.sublime-settings", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/auto_click.sublime-project", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/lib/auto_click/user32.rb", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/auto_click-0.2.0.gem", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/Gemfile.lock", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Git/Default.sublime-commands", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Git/git.py", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/README.rdoc", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/lib/auto_click.rb", + "/D/dropbox/WorkSpaces/RubySpace/erinata/erinata.sublime-project", + "/D/dropbox/WorkSpaces/RubySpace/erinata/erinata.sublime-workspace", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Default/Global.sublime-settings", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/User/Global.sublime-settings", + "/D/dropbox/WorkSpaces/RubySpace/erinata/abc.txt", + "/D/dropbox/WorkSpaces/RubySpace/erinata/app/controllers/greetings_controller.rb", + "/D/Dropbox/programs/Sublime_Text/Data/Settings/Session.sublime_session", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Terminal/Default (Windows).sublime-keymap", + "/D/dropbox/WorkSpaces/RubySpace/erinata/public/404.html", + "/D/dropbox/WorkSpaces/RubySpace/erinata/app/controllers/application_controller.rb", + "/D/dropbox/WorkSpaces/RubySpace/erinata/Gemfile.lock", + "/D/Dropbox/WorkSpaces/RubySpace/erinata/a.rb", + "/D/dropbox/WorkSpaces/RubySpace/erinata/.project", + "/D/dropbox/WorkSpaces/RubySpace/erinata/.gitignore", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Git/Git.sublime-settings", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Git/package-metadata.json", + "/D/New folder/a.txt", + "/D/Dropbox/programs/Sublime_Text/Data/Packages/Git/Main.sublime-menu", + "/D/dropbox/WorkSpaces/RubySpace/erinata/config/initializers/wrap_parameters.rb", + "/D/Dropbox/programs/Ruby/Devkit452/config.yml", + "/D/dropbox/WorkSpaces/RubySpace/erinata/config/routes.rb", + "/D/dropbox/WorkSpaces/RubySpace/erinata/config.ru", + "/D/dropbox/WorkSpaces/RubySpace/erinata/Procfile", + "/D/dropbox/WorkSpaces/RubySpace/erinata/Gemfile", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Ruby/Ruby.tmLanguage", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/exec.py", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/Default.sublime-commands", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/delete_word.py", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/goto_line.py", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/git.py", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/package-metadata.json", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/Git.sublime-settings", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/Main.sublime-menu", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Git/git.pyc", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/Base File.sublime-settings", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/User/Base File.sublime-settings", + "/C/Users/tomtom/Desktop/basic.ics", + "/h", + "/D/dropbox/WorkSpaces/RubySpace/erinata/config/application.rb", + "/D/dropbox/WorkSpaces/RubySpace/erinata/app/views/greetings/hello.html.erb", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/User/Terminal.sublime-settings", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Terminal/Terminal.sublime-settings", + "/D/dropbox/WorkSpaces/RubySpace/rails_tutorial/autotest/discover.rb", + "/D/dropbox/WorkSpaces/RubySpace/rails_tutorial/app/views/layouts/application.html.erb", + "/D/dropbox/WorkSpaces/RubySpace/small_ruby/small_ruby.sublime-project", + "/D/dropbox/WorkSpaces/RubySpace/rails_tutorial/rails_tutorial.sublime-project", + "/D/dropbox/WorkSpaces/RubySpace/ruby.sublime-workspace", + "/D/dropbox/WorkSpaces/RubySpace/ruby.sublime-project", + "/C/Users/tomtom/Desktop/test.sublime-project", + "/D/dropbox/WorkSpaces/RubySpace/test_rails/.project", + "/D/dropbox/WorkSpaces/RubySpace/test_rails/config/application.rb", + "/D/dropbox/WorkSpaces/RubySpace/test_rails/app/views/layouts/application.html.erb", + "/D/dropbox/WorkSpaces/RubySpace/rails_tutorial/app/controllers/application_controller.rb", + "/C/Users/tomtom/Desktop/test.sublime-workspace", + "/D/dropbox/Programs/Sublime_Text/Data/Packages/Default/Default (Windows).sublime-keymap", + "/D/dropbox/Programs/Sublime_Text/subl.bat", + "/C/Users/tomtom/Desktop/abc", + "/C/Users/tomtom/Desktop/Sublime Text/abc.txt", + "/C/Users/tomtom/Desktop/Sublime Text/%*", + "/C/Users/tomtom/Desktop/Sublime Text/subl.bat", + "/C/Users/tomtom/Desktop/a.cpp", + "/C/Users/tomtom/Desktop/Sublime Text/Data/Packages/SublimeCodeIntel/SublimeCodeIntel.py", + "/C/Users/tomtom/Desktop/Sublime Text/aaa.rb", + "/C/Users/tomtom/Desktop/Sublime Text/Data/Packages/SublimeCodeIntel/README.markdown", + "/C/Users/tomtom/Desktop/Sublime Text/Data/Packages/SublimeCodeIntel/Base File.sublime-settings", + "/C/Users/tomtom/Desktop/Sublime Text/Data/Packages/SublimeCodeIntel/Default (Windows).sublime-keymap" + ], + "find": + { + "height": 37.0 + }, + "find_in_files": + { + "height": 0.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "Messager", + "TODO", + "TODO ", + "TODO", + "project", + "CommandThread", + "run_command", + "rails_tut", + "rails", + "[0-9].??", + "[0-9].*", + "git_root", + "\\", + "git_root", + "working_dir=root", + "working_dir", + "run_command", + "custom", + "ExecCommand", + "run_command", + "get_file_name", + "stash", + "git_stash", + "Application", + "alt+shift", + "shift+alt", + "testing", + "test", + "p[r]", + "p????", + "p*", + "test", + "utf-8", + "utf" + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + "Michelle" + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "sheets": + [ + ] + } + ], + "incremental_find": + { + "height": 0.0 + }, + "input": + { + "height": 37.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": false, + "replace": + { + "height": 60.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "selected_items": + [ + [ + "gem", + "michelle.gemspec" + ], + [ + "cli", + "lib/michelle/client.rb" + ], + [ + "ver", + "lib/michelle/version.rb" + ], + [ + "git", + ".gitignore" + ], + [ + "gems", + "michelle.gemspec" + ], + [ + "mi", + "lib/michelle.rb" + ], + [ + "auto", + "auto_click.sublime-project" + ], + [ + "", + "auto_click.sublime-workspace" + ], + [ + "test", + "test_build.rb" + ], + [ + "read", + "README.rdoc" + ], + [ + "viru", + "lib/auto_click/virtual_key.rb" + ], + [ + "abc", + "/D/dropbox/WorkSpaces/RubySpace/erinata/abc.txt" + ], + [ + "data", + "config/database.yml" + ], + [ + "app", + "app/assets/javascripts/application.js" + ], + [ + "erb", + "app/views/greetings/hello.html.erb" + ], + [ + "view/appl", + "app/views/layouts/application.html.erb" + ], + [ + "application", + "rails_tutorial/app/controllers/application_controller.rb" + ], + [ + "view/appli", + "app/views/layouts/application.html.erb" + ], + [ + "applic", + "config/application.rb" + ], + [ + "conf", + "config/application.rb" + ] + ], + "width": 0.0 + }, + "select_project": + { + "height": 500.0, + "selected_items": + [ + [ + "", + "/D/dropbox/WorkSpaces/RubySpace/auto_click/auto_click.sublime-project" + ], + [ + "au", + "/D/Dropbox/WorkSpaces/RubySpace/auto_click/auto_click.sublime-project" + ], + [ + "erinata", + "/D/dropbox/WorkSpaces/RubySpace/erinata/erinata.sublime-project" + ], + [ + "rails", + "/D/dropbox/WorkSpaces/RubySpace/rails_tutorial/rails_tutorial.sublime-project" + ] + ], + "width": 380.0 + }, + "show_minimap": true, + "show_open_files": true, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 150.0, + "status_bar_visible": true +} diff --git a/lib/gist.rb b/lib/gist.rb index b5e5f08..d4fe6e5 100644 --- a/lib/gist.rb +++ b/lib/gist.rb @@ -177,17 +177,23 @@ def browse(url) # Tries to copy passed content to the clipboard. def copy(content) - cmd = case true - when system("type pbcopy > /dev/null 2>&1") - :pbcopy - when system("type xclip > /dev/null 2>&1") - :xclip - when system("type putclip > /dev/null 2>&1") - :putclip - end + if RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw|wince/i + system("echo #{content} | clip") + else - if cmd - IO.popen(cmd.to_s, 'r+') { |clip| clip.print content } + cmd = case true + when system("type pbcopy > /dev/null 2>&1") + :pbcopy + when system("type xclip > /dev/null 2>&1") + :xclip + when system("type putclip > /dev/null 2>&1") + :putclip + end + + + if cmd + IO.popen(cmd.to_s, 'r+') { |clip| clip.print content } + end end content