summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rbot/ircbot.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb
index 4209aeee..7f258b0b 100644
--- a/lib/rbot/ircbot.rb
+++ b/lib/rbot/ircbot.rb
@@ -183,8 +183,23 @@ class IrcBot
exit 2
end
- botclass = "#{Etc.getpwuid(Process::Sys.geteuid)[:dir]}/.rbot" unless botclass
- #botclass = "#{ENV['HOME']}/.rbot" unless botclass
+ unless botclass and not botclass.empty?
+ # We want to find a sensible default.
+ # * On POSIX systems we prefer ~/.rbot for the effective uid of the process
+ # * On Windows (at least the NT versions) we want to put our stuff in the
+ # Application Data folder.
+ # We don't use any particular O/S detection magic, exploiting the fact that
+ # Etc.getpwuid is nil on Windows
+ if Etc.getpwuid(Process::Sys.geteuid)
+ botclass = Etc.getpwuid(Process::Sys.geteuid)[:dir].dup
+ else
+ if ENV.has_key?('APPDATA')
+ botclass = ENV['APPDATA'].dup
+ botclass.gsub!("\\","/")
+ end
+ end
+ botclass += "/.rbot"
+ end
botclass = File.expand_path(botclass)
@botclass = botclass.gsub(/\/$/, "")