diff -r 715709eca0e1 -r de69e9ba8f22 scripts/pvlbackup-rsync-snapshot --- 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)