Sha256: 991a18f3d4a7b84a11d8bd445f7ddc595681950766543b565f51b0901bf0d379

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

# encoding: utf-8

require 'madvertise/ext/logging'
require 'servolux'
require 'servolux/cli'

module Servolux
  def self.parse_opts(cli_class)
    opts = cli_class.parse_options

    # CLI.parse_options may have changed $0
    # so we reload the logger for good measure
    $log = init_logger
    $log.level = opts[:debug] ? :debug : :info

    return opts
  end

  def self.wrap(server_class)
    opts = self.parse_opts(Servolux::CLI)
    server_class.new(opts).run
  rescue => e
    $log.exception(e)
    raise e
  end

  def self.wrap_daemon(server_class)
    opts = self.parse_opts(Servolux::DaemonCLI)

    server = server_class.new(opts[:name], opts.merge({
      interval: 1,
      logger: $log,
      pid_file: opts[:pidfile]
    }))

    if opts[:daemonize] or opts[:kill]
      daemon = Servolux::Daemon.new(:server => server)

      if opts[:kill]
        daemon.shutdown
      else
        daemon.startup
      end
    else
      server.startup
    end
  rescue => e
    $log.exception(e)
    raise e
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
madvertise-ext-0.4.0 lib/servolux/wrapper.rb