From dcaeff4beb1b7952551ee2abfbbcd5f172a67100 Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Fri, 23 Nov 2012 14:35:45 +0000 Subject: Added this file to the project - not-yet used. --- lib/custodian/settings.rb | 98 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 lib/custodian/settings.rb (limited to 'lib') diff --git a/lib/custodian/settings.rb b/lib/custodian/settings.rb new file mode 100644 index 0000000..2708570 --- /dev/null +++ b/lib/custodian/settings.rb @@ -0,0 +1,98 @@ + +require 'singleton' + + +# +# A class which encapsulates some global-settings from the custodian configuration file. +# +# The configuration file is optional, and we have defaults for every value. +# +# This class is a singleton to avoid having to re-parse the configuration file more than +# once per program-launch. +# +module Custodian + + class Settings + + include Singleton + + + # + # The parsed key=values store + # + attr_reader :settings + + + # + # Holder to mark whether we've loaded our file. + # + attr_reader :parsed + + + + + # + # Load the configuration file; called only once. + # + def _load + @parsed = true + @settings = Hash.new() + + # + # The global configuration file. + # + file = "/etc/custodian/custodian.cfg" + return unless( File.exists?( file ) ) + + # + # Load and "parse" the key=value content. + # + File.open( file, "r").each_line do |line| + next if ( line.nil? || line =~ /^#/ ) + if ( line =~ /^(.*)=(.*)$/ ) + key = $1.dup + val = $2.dup + key.strip! + val.strip! + @settings[key] = val + end + end + end + + + + + # + # Have we loaded our data? + # + def _loaded? + @parsed + end + + + + + # + # The timeout period for all tests + # + def timeout + _load() unless( _loaded? ) + + @settings['timeout'] || 30 + end + + + + + # + # The beanstalkd server address + # + def queue_server + _load() unless( _loaded? ) + + @settings['queue'] || "127.0.0.1:13300" + end + + + end +end -- cgit v1.2.1