X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Frbotconfig.rb;h=a282d77090b1641f7dd4226bb772d2bda705ed44;hb=3ac610a592b8cc877edf10b7fcc7f55162a9136a;hp=01f66307b512085d9228665e08f6d7623d53522c;hpb=fe11699daa7fb163fbcae00255f031719d50a38c;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/lib/rbot/rbotconfig.rb b/lib/rbot/rbotconfig.rb index 01f66307..a282d770 100644 --- a/lib/rbot/rbotconfig.rb +++ b/lib/rbot/rbotconfig.rb @@ -1,26 +1,43 @@ module Irc module Config - @@datadir = nil + unless defined?(@@datadir) + @@datadir = nil - # first try for the default path to the data dir - defaultdir = File.expand_path(File.dirname($0) + '/../data') + defaultdatadir = File.expand_path(File.dirname($0) + '/../data/rbot') - if File.directory? "#{defaultdir}/rbot" - @@datadir = "#{defaultdir}/rbot" + if File.directory? defaultdatadir + @@datadir = defaultdatadir + end + end + + unless defined?(@@coredir) + @@coredir = nil + + defaultcoredir = File.expand_path(File.dirname($0) + '/../lib/rbot/core') + + if File.directory? defaultcoredir + @@coredir = defaultcoredir + end end - + # setup pkg-based configuration - i.e. where were we installed to, where # are our data files, etc. - if @@datadir.nil? + if @@datadir.nil? or @@coredir.nil? begin debug "trying to load rubygems" require 'rubygems' debug "loaded rubygems, looking for rbot-#$version" - gemname, gem = Gem.source_index.find{|name, spec| spec.name == 'rbot' && spec.version.version == $version} + if $version =~ /(.*)-svn\Z/ + version = $1 + else + version = $version + end + gemname, gem = Gem.source_index.find{|name, spec| spec.name == 'rbot' && spec.version.version == version} debug "got gem #{gem}" if gem && path = gem.full_gem_path debug "installed via rubygems to #{path}" @@datadir = "#{path}/data/rbot" + @@coredir = "#{path}/lib/rbot/core" else debug "not installed via rubygems" end @@ -29,18 +46,23 @@ module Irc end end - if @@datadir.nil? + if @@datadir.nil? or @@coredir.nil? begin require 'rbot/pkgconfig' @@datadir = PKGConfig::DATADIR + @@coredir = PKGConfig::COREDIR rescue LoadError - puts "fatal - no way to determine data dir" + error "fatal - no way to determine data or core dir" exit 2 end end - + def Config.datadir @@datadir end + + def Config.coredir + @@coredir + end end end