blob: 270857040652478c5018b219225f0498a701ef9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
|