diff options
author | elijah <elijah@riseup.net> | 2013-05-19 22:28:01 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-05-19 22:28:01 -0700 |
commit | f9d6b218be3bdbb2d3c544849b2ab92348d0e394 (patch) | |
tree | 71cd7ab6e5e9ffb4571b555324ada743c3d29387 /lib/nickserver/daemon.rb | |
parent | 5d2e69ad4f2b6214df52c617f5e6cb23d9f40944 (diff) |
many related changes -- allow command line configs, validate addresses, overhaul bootstrap.
Diffstat (limited to 'lib/nickserver/daemon.rb')
-rw-r--r-- | lib/nickserver/daemon.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/nickserver/daemon.rb b/lib/nickserver/daemon.rb index e0bd527..651c6ce 100644 --- a/lib/nickserver/daemon.rb +++ b/lib/nickserver/daemon.rb @@ -67,7 +67,7 @@ module Nickserver create_pid_file(Config.pid_file, Config.user) catch_interrupt redirect_output - drop_permissions_to(Config.user) + drop_permissions_to(Config.user) if Config.user File.umask 0000 yield end @@ -77,7 +77,7 @@ module Nickserver File.open file, 'w' do |f| f.write("#{Process.pid}\n") end - FileUtils.chown(user, nil, file) + FileUtils.chown(user, nil, file) if Process::Sys.getuid == 0 rescue Errno::EACCES bail "insufficient permission to create to pid file `#{file}`" rescue Errno::ENOENT @@ -207,13 +207,22 @@ module Nickserver when 'status' then ARGV.shift; @command = :status when 'version' then ARGV.shift; @command = :version when '--verbose' then ARGV.shift; Config.versbose = true - when /^-/ then usage("Unknown option: #{ARGV[0].inspect}") + when /^-/ then override_default_config(ARGV.shift, ARGV.shift) else break end end usage("Missing command") unless @command end + def override_default_config(flag, value) + flag = flag.sub /^--/, '' + if Config.respond_to?("#{flag}=") + Config.send("#{flag}=", value) + else + usage("Unknown option: --#{flag}") + end + end + # # COMMANDS # |