--- a/scripts/pvlbackup-rsync-snapshot Thu Feb 16 10:14:46 2012 +0200
+++ b/scripts/pvlbackup-rsync-snapshot Thu Feb 16 10:53:13 2012 +0200
@@ -87,7 +87,7 @@
# defaults
parser.set_defaults(
- loglevel = logging.WARNING,
+ loglevel = logging.INFO,
target_intervals = [],
)
@@ -114,6 +114,10 @@
return options, args
+## Configuration
+class ConfigError (Exception) :
+ pass
+
def process_config_name (name) :
"""
Process config file name into python version
@@ -167,15 +171,19 @@
return config
-def config_bool (name, value) :
+def config_bool (name, value, strict=True) :
if value.lower() in ('yes', 'true', '1', 'on') :
return True
elif value.lower() in ('no', 'false', '0', 'off') :
return False
+ elif strict :
+ raise ConfigError("Unrecognized boolean value: {name} = {value}".format(name=name, value=value))
+
else :
- raise ConfigError("Unrecognized boolean value: {name} = {value}".format(name=name, value=value))
+ # allow non-boolean values
+ return value
def config_int (name, value) :
try :
@@ -295,7 +303,10 @@
if rsync_options :
# override
- _rsync_options.update(rsync_options)
+ _rsync_options.update([
+ # parse
+ (option, config_bool(option, value, strict=False)) for option, value in rsync_options.iteritems()
+ ])
# lookup intervals
_intervals = [
@@ -645,7 +656,7 @@
# parse
interval = Interval.from_config(options, name, **interval_config)
- log.info("Interval: %s", name)
+ log.debug("config interval: %s", name)
# store
options.intervals[name] = interval
@@ -653,8 +664,8 @@
for option in config['rsync_options'] :
value = config['rsync_options'][option]
- # parse
- value = config_bool(option, value)
+ # parse, allowing non-boolean values as well...
+ value = config_bool(option, value, strict=False)
log.debug("rsync option: %s=%s", option, value)
@@ -672,7 +683,7 @@
# parse
target = Target.from_config(options, name, **target_config)
- log.info("Target: %s", name)
+ log.info("Config target: %s", name)
# run
target.run(options)