class Pristine::Config

Constants

DEFAULT_FILES_LIST
DEFAULT_FLAGS
DEFAULT_LOG

Public Class Methods

config() click to toggle source
# File lib/pristine/config.rb, line 56
def self.config
  @config
end
files_list() click to toggle source

Specific for Puppet’s resource.txt file

# File lib/pristine/config.rb, line 61
def self.files_list
  list = []
  File.open(@config.files_list, 'r') do |f|
    f.each_line do |line|
      if line.match(/^file/)
        list << line.split('[')[1].split(']').first
      end
    end
  end
  list
end
load(args) click to toggle source
# File lib/pristine/config.rb, line 13
    def self.load(args)
      @config = OpenStruct.new

      parser = OptionParser.new do |opts|
        opts.on_head('--config FILE', 'Config file') do |path|
          @config[:config_file] = path
          @config = OpenStruct.new(Hash[YAML::load(open(path)).map { |k, v| [k.to_sym, v] }])
        end

        # TODO
#        opts.on('-F', '--foreground', 'Run on foreground') do |v|
#          @config[:foreground] = v
#        end

        opts.on('-l', '--log FILE', 'Log output') do |v|
          @config[:log] = v
        end

        # TODO
#        opts.on('-f', '--flags x,y,z', Array, 'Systemcalls to watch') do |v|
#          @config[:config_file] = v
#        end

        opts.on('-f', '--files FILE', 'Files list to watch') do |v|
          @config[:files_list] = v
        end

        opts.on_tail("-h", "--help", "Show this message") do
          puts opts
          exit
        end

        opts.on_tail("--version", "Show version") do
          puts Pristine::VERSION
          exit
        end
      end
      parser.parse(args)
      parser.load(config.config_file) unless config.config_file.nil?

      set_defaults
    end
method_missing(method) click to toggle source
# File lib/pristine/config.rb, line 73
def self.method_missing(method)
  @config.send method
end

Private Class Methods

set_defaults() click to toggle source
# File lib/pristine/config.rb, line 78
def self.set_defaults
  @config.log ||= DEFAULT_LOG
  @config.flags ||= DEFAULT_FLAGS
  @config.files_list ||= DEFAULT_FILES_LIST
end