X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fregistry.rb;h=a3c55da83953e72c8eb5646f107aae22e61ab9b5;hb=a4ff366eea4c88083be8a3d30cc6395f17b55fe2;hp=bc52a3730dd17378eb6ce4ea36e0f96d7db65ab0;hpb=597bfec2266fc9c6c29f84a0d811fe264932500b;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/registry.rb b/lib/rbot/registry.rb index bc52a373..a3c55da8 100644 --- a/lib/rbot/registry.rb +++ b/lib/rbot/registry.rb @@ -27,14 +27,14 @@ module Irc } old.close new.close - File.delete("#{@bot.botclass}/registry.db") + File.rename("#{@bot.botclass}/registry.db", "#{@bot.botclass}/registry.db.old") end end def upgrade_data2 if File.exist?("#{@bot.botclass}/plugin_registry.db") Dir.mkdir("#{@bot.botclass}/registry") unless File.exist?("#{@bot.botclass}/registry") - env = BDB::Env.open("#{@bot.botclass}", BDB::INIT_TRANSACTION | BDB::CREATE | BDB::RECOVER) + env = BDB::Env.open("#{@bot.botclass}", BDB::INIT_TRANSACTION | BDB::CREATE | BDB::RECOVER)# | BDB::TXN_NOSYNC) dbs = Hash.new log "upgrading previous (rbot 0.9.9 or earlier) plugin registry to new split format" old = BDB::CIBtree.open("#{@bot.botclass}/plugin_registry.db", nil, @@ -44,6 +44,7 @@ module Irc prefix.downcase! # subregistries were split with a +, now they are in separate folders if prefix.gsub!(/\+/, "/") + # Ok, this code needs to be put in the db opening routines dirs = File.dirname("#{@bot.botclass}/registry/#{prefix}.db").split("/") dirs.length.times { |i| dir = dirs[0,i+1].join("/")+"/" @@ -122,17 +123,27 @@ module Irc def initialize(bot, name) @bot = bot @name = name.downcase + dirs = File.dirname("#{@bot.botclass}/registry/#{@name}").split("/") + dirs.length.times { |i| + dir = dirs[0,i+1].join("/")+"/" + unless File.exist?(dir) + debug "creating subregistry directory #{dir}" + Dir.mkdir(dir) + end + } @registry = DBTree.new bot, "registry/#{@name}" @default = nil # debug "initializing registry accessor with name #{@name}" end def flush + # debug "fushing registry #{@registry}" @registry.flush @registry.sync end def close + # debug "closing registry #{@registry}" @registry.close end @@ -287,7 +298,7 @@ module Irc end def sub_registry(prefix) - return BotRegistryAccessor.new(@bot, @name + "/" + prefix) + return BotRegistryAccessor.new(@bot, @name + "/" + prefix.to_s) end # returns the number of keys in your registry namespace