X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fconfig.rb;h=027b99023443c1b870a9e432343400e7590d5a07;hb=1676abaf61c9b6c40714e00d6637e3a73d8b527b;hp=36160875139472b36332c14c15c2b93b61c6cf26;hpb=b50352520924d5e7a912a03719d5935f74e498d4;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/config.rb b/lib/rbot/config.rb index 36160875..027b9902 100644 --- a/lib/rbot/config.rb +++ b/lib/rbot/config.rb @@ -136,8 +136,8 @@ module Irc end end def parse(string) - unless @values.include?(string) - raise ArgumentError, "invalid value #{string}, allowed values are: " + @values.join(", ") + unless values.include?(string) + raise ArgumentError, "invalid value #{string}, allowed values are: " + values.join(", ") end string end @@ -311,20 +311,30 @@ module Irc :defaults => {:topic => false} if(File.exist?("#{@@bot.botclass}/conf.yaml")) - newconfig = YAML::load_file("#{@@bot.botclass}/conf.yaml") - @@config.update newconfig - else - # first-run wizard! - BotConfigWizard.new(@@bot).run - # save newly created config - save + begin + newconfig = YAML::load_file("#{@@bot.botclass}/conf.yaml") + @@config.update newconfig + return + rescue + $stderr.puts "failed to read conf.yaml: #{$!}" + end end + # if we got here, we need to run the first-run wizard + BotConfigWizard.new(@@bot).run + # save newly created config + save end # write current configuration to #{botclass}/conf.rbot def save - File.open("#{@@bot.botclass}/conf.yaml", "w") do |file| - file.puts @@config.to_yaml + begin + File.open("#{@@bot.botclass}/conf.yaml.new", "w") do |file| + file.puts @@config.to_yaml + end + File.rename("#{@@bot.botclass}/conf.yaml.new", + "#{@@bot.botclass}/conf.yaml") + rescue + $stderr.puts "failed to write configuration file conf.yaml! #{$!}" end end