Sha256: cd8c9d841c64556e10d08c62ed99e20711b27471bfa8ca9228f841152db2c0f8

Contents?: true

Size: 1.91 KB

Versions: 9

Compression:

Stored size: 1.91 KB

Contents

#!/usr/bin/env ruby

$: << File.dirname($0) + "/../lib"

require "rubygems"
require "eventmachine"
require "logstash/agent"
require "optparse"
require "yaml"

Settings = Struct.new(:config_file, :daemonize, :logfile, :verbose)

settings = Settings.new
settings.daemonize = false
settings.config_file = nil
settings.verbose = 0
progname = File.basename($0)

opts = OptionParser.new do |opts|
  opts.banner = "Usage: #{progname} [options]"

  opts.on("-f CONFIGFILE", "--config CONFIGFILE",
          "Load the logstash config from a specific file") do |arg|
    settings.config_file = arg
  end

  opts.on("-d", "--daemonize", "Daemonize (default is run in foreground)") do 
    settings.daemonize = true
  end

  opts.on("-l", "--log FILE", "Log to a given path. Default is stdout.") do |path|
    settings.logfile = path
  end

  opts.on("-v", "Increase verbosity (not yet used)") do
    settings.verbose += 1
  end
end

begin
  opts.parse!
  if settings.config_file == "" or settings.config_file == nil
    raise "No config file given. (missing -f or --config flag?)"
  end
rescue
  $stderr.puts "#{progname}: #{$!}"
  $stderr.puts opts
  exit(1)
end

# TODO(sissel): put the config management stuff in LogStash::Agent
if !File.exist?(settings.config_file)
  $stderr.puts "Config file '#{settings.config_file}' does not exist."
end

begin
  config = YAML::load_file(settings.config_file)
rescue => e
  $stderr.puts "Loading config file '#{settings.config_file}' failed: #{e}"
  exit 1
end

if settings.daemonize
  if Process.fork == nil
    Process.setsid 
  else
    exit(0)
  end
end

if settings.logfile
  logfile = File.open(settings.logfile, "w")
  STDOUT.reopen(logfile)
  STDERR.reopen(logfile)
elsif settings.daemonize
  # Write to /dev/null if 
  devnull = File.open("/dev/null", "w")
  STDOUT.reopen(devnull)
  STDERR.reopen(devnull)
end

agent = LogStash::Agent.new(config)
#if settings.logfile
  #agent.log_to(settings.logfile)
#end
agent.run 

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
logstash-lite-0.2.20110505142231 bin/logstash
logstash-lite-0.2.20110422152244 bin/logstash
logstash-lite-0.2.20110405105201 bin/logstash
logstash-lite-0.2.20110331121236 bin/logstash
logstash-lite-0.2.20110329105411 bin/logstash
logstash-lite-0.2.20110206003603 bin/logstash
logstash-lite-0.2.20110203130400 bin/logstash
logstash-lite-0.2.20110122143801 bin/logstash
logstash-lite-0.2.20110112115019 bin/logstash