#!/usr/bin/ruby # # LEAP Client Certificate Generation Daemon # BASE_DIR = File.expand_path('../..', File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__) begin # # try without rubygems (might be already loaded or not present) # require 'leap_ca/version' rescue LoadError # # try with rubygems # require "#{BASE_DIR}/lib/leap_ca/version.rb" LeapCA::REQUIRE_PATHS.each do |path| path = File.expand_path(path, BASE_DIR) $LOAD_PATH.unshift path unless $LOAD_PATH.include?(path) end require 'rubygems' require 'leap_ca/version' end # Graceful Ctrl-C Signal.trap("SIGINT") do puts "\nQuit" exit end # this changes later, so save the initial current directory CWD = Dir.pwd # handle --version ourselves if ARGV.grep(/--version/).any? puts "leap_ca #{LeapCA::VERSION}, ruby #{RUBY_VERSION}" exit(0) end # --fill-pool will fill the pool and then exit if ARGV.grep(/--fill-pool/).any? require 'leap_ca' pool = LeapCA::Pool.new(:size => LeapCA::Config.max_pool_size) pool.fill exit(0) end # # Start the daemon # require 'daemons' if ENV["USER"] == "root" options = {:app_name => 'leap_ca', :dir_mode => :system} # this will put the pid file in /var/run else options = {:app_name => 'leap_ca', :dir_mode => :normal, :dir => '/tmp'} # this will put the pid file in /tmp end Daemons.run("#{BASE_DIR}/lib/leap_ca_daemon.rb", options)