]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/ircbot.rb
this packaging stuff seems to actually be working
[user/henk/code/ruby/rbot.git] / lib / rbot / ircbot.rb
index 844231ddeddb19512467a2c1f0df7475f2e9f8fb..e211ca5309703ad9c61c84acddc43b310e2af099 100644 (file)
@@ -20,6 +20,8 @@
 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 require 'thread'
+require 'etc'
+require 'fileutils'
 
 require 'rbot/rfc2812'
 require 'rbot/keywords'
@@ -35,6 +37,7 @@ require 'rbot/language'
 require 'rbot/dbhash'
 require 'rbot/registry'
 require 'rbot/httputil'
+require 'rbot/rbotconfig'
 
 module Irc
 
@@ -77,12 +80,26 @@ class IrcBot
 
   # create a new IrcBot with botclass +botclass+
   def initialize(botclass)
+    unless FileTest.directory? Config::DATADIR
+      puts "no data directory '#{Config::DATADIR}' found, did you run install.rb?"
+      exit 2
+    end
+    
+    botclass = "/home/#{Etc.getlogin}/.rbot" unless botclass
     @botclass = botclass.gsub(/\/$/, "")
-    @startup_time = Time.new
+
+    unless FileTest.directory? botclass
+      puts "no #{botclass} directory found, creating from templates.."
+      if FileTest.exist? botclass
+        puts "Error: file #{botclass} exists but isn't a directory"
+        exit 2
+      end
+      FileUtils.cp_r Config::DATADIR+'/templates', botclass
+    end
     
-    Dir.mkdir("#{botclass}") if(!File.exist?("#{botclass}"))
     Dir.mkdir("#{botclass}/logs") if(!File.exist?("#{botclass}/logs"))
 
+    @startup_time = Time.new
     @config = Irc::BotConfig.new(self)
     @timer = Timer::Timer.new
     @registry = BotRegistry.new self