Sha256: 457ae4524900aad53a0867ed520ef5148bf55f9cf5a2fa4a803605257a5d8696

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

#!/usr/bin/env ruby
#encoding: utf-8

require 'trollop'
require 'yaml'
require 'configatron'
require 'parallel'
require 'logger'

require File.expand_path('../../lib/riemann/version', __FILE__)
require File.expand_path('../../lib/deep_merge', __FILE__)
require File.expand_path('../../lib/riemann/babbler/plugin', __FILE__)

opts = Trollop::options do
  version "Riemann babbler #{Babbler::VERSION}"
  banner <<-EOS
Riemann-babbler is plugin manager for riemann-tools.

Usage:
       riemann-babbler [options] 
where [options] are:
EOS

  opt :config, "Config file", :default => "/etc/riemann-babbler/config.yml"
end

# logger
log = Logger.new(STDOUT)

# merge configs
config_file =  if File.exist?( opts[:config] )
  YAML.load_file( opts[:config] ).to_hash
else
  log.error "Can't load config file #{opts[:config]}"
  Hash.new
end

config_default = YAML.load_file( File.expand_path('../../config.yml', __FILE__) )

config = config_default.deep_merge( config_file )
configatron.configure_from_hash config

# отправляем к плагинам
$configatron = configatron
$logger = log

# get plugins
plugins = []
default_plugins_dir = File.expand_path('../../lib/riemann/babbler/plugins/', __FILE__)
Dir.glob( default_plugins_dir + "/*.rb" ) do |file|
  plugins <<  file
end

unless configatron.plugins.dirs.nil?
  configatron.plugins.dirs.each do |dir|
    next unless Dir.exist? dir
    Dir.glob( dir + "/*.rb" ) do |file|
      plugins << file
    end
  end
end

unless configatron.plugins.files.nil?
  configatron.plugins.files.each do |file|
    plugins << file
  end
end

# start plugins
Parallel.each( plugins, :in_threads => plugins.count ) do |plugin|
  require plugin
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riemann-babbler-0.0.5 bin/riemann-babbler