#!/usr/bin/ruby # # Nickserver key discovery daemon # # # bootstrap nickserver library # begin # try without rubygems (might be already loaded or not present) require 'nickserver' rescue LoadError begin # try with rubygems require 'rubygems' require 'nickserver' rescue LoadError # try manually BASE_DIR = File.expand_path('../..', File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__) $LOAD_PATH << "#{BASE_DIR}/lib" require "nickserver" end end # # Handle craceful Ctrl-C # Signal.trap("SIGINT") do puts "\nQuit" exit end # # Handle '--version' ourselves # if ARGV.grep(/--version/).any? puts "nickserver #{Nickserver::VERSION}, ruby #{RUBY_VERSION}" exit(0) end # # Start the daemon # require 'daemons' options = {:app_name => 'nickserver', :multiple => false, :backtrace => true} # pick where the pid file should go (must be readable/writable by current user) if File.writable?('/var/run/nickserver') options.merge!(:dir_mode => :normal, :dir => '/var/run/nickserver') elsif ENV["USER"] == "root" options.merge!(:dir_mode => :system) else options.merge!(:dir_mode => :normal, :dir => '/tmp') end Daemons.run_proc('nickserver', options) do EventMachine.run do Nickserver::Server.start end end