]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/config.rb
geoip plugin: added nick based network-wide lookup and fixed some charset issues
[user/henk/code/ruby/rbot.git] / lib / rbot / config.rb
index 5661b3d1ef9480ee27aeafbc0e79cb255ed77325..207264bf5e6ab6f081cd5bee31a903dc72ad4792 100644 (file)
@@ -40,7 +40,9 @@ module Config
       @order = @@order
       @@order += 1
       @key = key.to_sym
-      if params.has_key? :default
+      if @manager.overrides.key?(@key)
+        @default = @manager.overrides[@key]
+      elsif params.has_key? :default
         @default = params[:default]
       else
         @default = false
@@ -63,7 +65,7 @@ module Config
     end
     def get
       return @manager.config[@key] if @manager.config.has_key?(@key)
-      return @default
+      return default
     end
     alias :value :get
     def set(value, on_change = true)
@@ -226,6 +228,7 @@ module Config
     attr_reader :bot
     attr_reader :items
     attr_reader :config
+    attr_reader :overrides
     attr_accessor :changed
 
     def initialize
@@ -235,6 +238,21 @@ module Config
     def reset_config
       @items = Hash.new
       @config = Hash.new(false)
+
+      # We allow default values for config keys to be overridden by
+      # the config file /etc/rbot.conf
+      # The main purpose for this is to allow distro or system-wide
+      # settings such as external program paths (figlet, toilet, ispell)
+      # to be set once for all the bots.
+      @overrides = Hash.new
+      etcfile = "/etc/rbot.conf"
+      if File.exist?(etcfile)
+        log "Loading defaults from #{etcfile}"
+        etcconf = YAML::load_file(etcfile)
+        etcconf.each { |k, v|
+          @overrides[k.to_sym] = v
+        }
+      end
     end
 
     # Associate with bot _bot_
@@ -348,6 +366,7 @@ module Config
     end
 
     def run()
+      $stdout.sync = true
       puts _("First time rbot configuration wizard")
       puts "===================================="
       puts _("This is the first time you have run rbot with a config directory of: #{@bot.botclass}")