X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fprojects%2Fbackupninja.git;a=blobdiff_plain;f=src%2Fbackupninja;h=019dfbdb48cd0489afb793a672d232b75bba1dd0;hp=df7d3c5bd5441376399d3790313858daaa39da87;hb=101bff5ef5fec6382ab572a286c4e79d0312c6cd;hpb=ece57a3973b3afeb138ac0eaab2da742955a2bad diff --git a/src/backupninja b/src/backupninja index df7d3c5..019dfbd 100755 --- a/src/backupninja +++ b/src/backupninja @@ -27,13 +27,50 @@ import logging import sys from backupninja.log import setup_logging +from backupninja import config +from backupninja import action log = logging.getLogger() def make_option_parser(): description = """%prog checks for scheduled actions and runs them when needed.""" parser = optparse.OptionParser(description=description) - + parser.add_option( "-c", "--confdir" + , help="Load configuration from CONFIG_DIR " + "instead of '%default'. When " + "the --conffile or --actionsdir options " + "specify relative paths, they are taken " + "relative to this directory." + , default="/etc/backupninja" + , dest="config_dir" + , metavar="CONFIG_DIR") + parser.add_option( "-f", "--conffile" + , help="Load the main configuration from FILE instead " + "of '%default'. If FILE is a relative path, it " + "is interpreted relative to CONFIG_DIR." + , default='backupninja.conf' + , dest="global_config" + , metavar="FILE") + parser.add_option( "-a", "--actionsdir" + , help="Load action configurations from ACTIONS_DIR " + "instead of '%default'. If ACTIONS_DIR is a " + "relative path, it is interpreted relative to " + "CONFIG_DIR." + , default="actions" + , dest="actions_dir" + , metavar="ACTIONS_DIR") + parser.add_option( "-d", "--debug" + , help="Run in debug mode. This only means logging is " + "more verbose." + , action="store_true" + , dest="debug") + parser.add_option( "-t", "--test" + , help="Run in testing mode. This means no actions " + "are taken, only show what would be done " + "(as far as possible without taking " + "actions, of course)." + , action="store_true" + , dest="test") return parser def main(argv): @@ -46,8 +83,15 @@ def main(argv): setup_logging(options) # Load config file + global_conf = config.get_global_config(options) + if global_conf is None: + # Error was already logged + return 1 + # Process command - parser.print_help() + action.run_all_actions(options, global_conf) + + return 0 if __name__ == '__main__': sys.exit(main(sys.argv))