Change soft-fail to use the config, rather than env
[rbx.git] / tools / rubuildius / bin / pastie.rb
blobcddd062b0f01bc6b0d6401cc205e3e7e5a66fe06
1 #!/usr/bin/env ruby
3 ### Pastie from the console (thanks pinupgeek)
5 # file = pastie.rb (depends on pastie_client.rb)
7 require 'pastie_client'
8 require 'optparse'
10 class CliPastie
11   
12   attr :parser
13   attr :opt
14     
15   def initialize
16     @opt = {
17       :parser   => "ruby",
18       :nick     => "rubuildius",
19       :key      => nil,
20       :help     => false
21     }
22     
23     @parser = OptionParser.new do |cmd|      
24       cmd.banner += " <filename>\n\nReads from STDIN if not passed a filename.\n\n"
25       cmd.on('-h', '--help', 'Show usage') { puts parser.help; exit }
26 #      cmd.on('-u', '--nick NICK', 'Set nickname') { |n| opt[:nick] = n }
27 #      cmd.on('-k', '--key KEY', 'Key to authenticate your nick') { |n| opt[:nick] = n }
28       cmd.on('-l', '--language LANG', 'Set language for syntax highlighting') { |l| opt[:parser] = l }
29     end
30   end
31   
32   def run
33     parser.parse!(ARGV)
34     if not ARGV.empty?
35       body = File.read(ARGV[0])
36     else
37       body=STDIN.read
38     end
39     return if body.strip.empty?
41     p = PastieClient.new( :nick => opt[:nick], :key => opt[:key] )
42     id = p.paste(body, opt[:parser])
43     puts "http://pastie.caboo.se/paste/#{id}"
44   end
46 end
48 if __FILE__ == $0
49   CliPastie.new.run
50 end