Sha256: e9c712963dad733f41d655c1e3af1bcb9ee3d1abf4e77f4c7f8f393377b07e67

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 KB

Contents

#!/usr/bin/env ruby
$:.unshift File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib]))
require 'eye/loader'
require 'optparse'
require 'eye'

options = {:debug => false}

OptionParser.new do |opts|
  opts.on( '-h', '--help', 'Display this screen' ) do
    puts opts
    exit
  end

  opts.on( '-c', '--config CONFIG', 'load with config' ) do |config_path|
    options[:config] = config_path
  end

  opts.on( '-s', '--socket SOCKET', 'start listen on socket' ) do |socket_path|
    options[:socket_path] = socket_path
  end

  opts.on( '-l', '--logger LOGGER', 'custom logger' ) do |logger|
    options[:logger] = logger
  end

  opts.on( '-dr', '--dir DIR', 'Dir for local runner' ) do |dir|
    Eye::Local.dir = dir
    Eye::Local.local_runner = true
  end

  opts.on( '-st', '--stop_all', 'Stop all on exit' ) do |stop_all|
    options[:stop_all] = true
  end

  opts.on( '-d', '--debug', 'debug info to logger' ) do
    options[:debug] = true
  end

end.parse!

Eye::Local.ensure_eye_dir

socket_path = options[:socket_path] || Eye::Local.socket_path
server = Eye::Server.new(socket_path)

Eye::Logger.log_level = options[:debug] ? Logger::DEBUG : Logger::INFO
Eye::Logger.link_logger(options[:logger]) if options[:logger]

config = options[:config]
config = File.expand_path(config) if config && !config.empty?

Eye::Control # preload

if config
  res = server.command('load', config)
  exit if res.values.any? { |r| r[:error] }
end

Eye::Control.set_proc_line

server.async.run

trap("USR1") { Eye::Logger.reopen }
trap("USR2") { GC.start }
trap("INT")  { exit }

at_exit { Eye::Control.command(:stop_all) } if options[:stop_all]

sleep

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eye-0.6 bin/loader_eye