main: Add --debug option to increase verbosity.
[matthijs/projects/backupninja.git] / src / backupninja
index df7d3c5bd5441376399d3790313858daaa39da87..1c2d71c26cdce22620c60ed7c3494cec0d14c7bc 100755 (executable)
@@ -27,13 +27,43 @@ 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")
     return parser
  
 def main(argv):
@@ -46,8 +76,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))