Change soft-fail to use the config, rather than env
[rbx.git] / tools / rubuildius / matzbot / launch.rb
blob7b3a59cde3ded41173fe24f8d45b06fe22e2ded2
1 #!/usr/bin/env ruby
3 $:.unshift "lib"
4 require 'rubygems'
5 require 'choice'
6 require_gem 'choice', '>= 0.1.2'
7 require 'matzbot'
9 Choice.options do
10   header ""
11   header "Specific options:" 
13   options  :server => { 
14     :short => '-s', :long => '--server SERVER',
15     :desc => ["The irc server to connect to.", "(default irc.freenode.org)"], :default => 'irc.freenode.org'
16   },
18   :port => {
19     :short => '-p', :long => '--port PORT', :desc => ["The irc server's port.", "(default 6667)"],
20     :default => 6667, :cast => Integer
21   },
23   :nick => {
24     :short => '-n', :long => '--nick NICK', :desc => ["The irc bot's nick.", "(default matz)"],
25     :default => 'matz' 
26   },
28   :password => {
29     :short => '-w', :long => '--password PASSWORD', :desc => "Your nick's password, if registered."
30   },
32   :channel => {
33     :short => '-c', :long => '--channel CHANNEL', :desc => ["The channel to join on connect -- without a hash.", "(default polymorphs)"],
34     :default => 'polymorphs' 
35   },
37   :user => {
38     :short => '-u', :long => '--user USER', :desc => ["The irc bot's username.", "(default matz)"], :default => 'matz' 
39   },
41   :name => {
42     :short => '-m', :long => '--name NAME', :desc => ["The irc bot's name.", "(default Matz)"], :default => 'Matz' 
43   },
45   :daemonize => {
46     :short => '-d', :long => '--daemon',
47     :desc => ["Run as a daemon - pass it nothing, start, stop, or restart.", "If you pass nothing, `start' is assumed."]
48   },
49   
50   :only_when_addressed => {
51     :short => '-a', :long => '--addressed',
52     :desc => ["Only speak if being addressed.", "(default false)"]
53   }
54 end
56 MatzBot::Session.load unless Choice.choices[:daemonize] == 'stop'
58 require 'daemon'
60 if Choice.choices[:daemonize]
61   MatzBot::Daemonize.daemonize(Choice.choices.merge('daemonize' => Choice.choices[:daemonize] == 'stop' ? 'stop' : 'start'))
62 else
63   MatzBot::Daemonize.store
64   begin
65     MatzBot::Client.start(Choice.choices)
66   ensure
67     MatzBot::Session.save
68   end
69 end