""" Check for scheduled backupninja actions and run them when needed """
import optparse
+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")
return parser
def main(argv):
parser = make_option_parser()
(options, args) = parser.parse_args(argv)
+ # Setup logging
+ 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))