blob: 41259d88117b3e0879b2beec79ffaeeb025b0efe (
plain) (
tree)
|
|
require 'optparse'
require 'ostruct'
require "inifile"
class OptParse
def parse(args)
options = OpenStruct.new()
options.inifile = nil
opt_parser = OptionParser.new() do |opts|
opts.banner = "Usage: monitor [options]"
opts.separator ""
opts.on( '-f', "-f ini_file", "chose a different initialization file") do |ini|
options.inifile = ini
end
end
opt_parser.parse!(args)
return options
end
end
class Ini_read
attr_reader(:global,:sections)
# attr_reader :global
# attr_accessor :global
def initialize()
options = OptParse.new().parse(ARGV)
find_ini(options.inifile)
read_ini()
parse_config()
parse_global()
end
def find_ini(option_inifile)
if(not option_inifile.nil?)
@inifile = option_inifile
elsif(ENV.has_key?('MONITOR_RC'))
@inifile = ENV['MONITOR_RC']
elsif(Process.uid == 0)
@inifile = "/etc/monitor.rc"
else
@inifile = ENV['HOME']+"/.monitorrc"
end
end
def read_ini()
@config = IniFile.load(@inifile, :default => 'global')
if(@config.nil?)
puts "Initialization file not found or not readable"
exit
end
end
def each_section()
return @sections
end
def parse_config()
@global = {}
@sections = {}
@config.each_section do |section|
sec = @config[section]
if(section == "global")
@global = sec
next
end
if(not sec.has_key?('Type'))
puts "Section incomplete, ignored: "+ section
next
elsif(not sec.has_key?('Command'))
puts "Section incomplete, ignored: "+ section
next
end
if(sec['Type'] == "continuous")
if(not sec.has_key?('Buffer'))
sec['Buffer'] = 1000
end
end
if(sec['Type'] == "oneshot")
if(not sec.has_key?('Periodic'))
sec['Periodic'] = 600
end
end
@sections[section] = sec
end
end
def parse_global()
if(@global.has_key?('list_size'))
@global['list_size'] = @global['list_size'].to_i
if(@global['list_size'] == 0)
@global['list_size'] = 25
end
else
@global['list_size'] = 25
end
end
end
|