]> scripts.mit.edu Git - wizard.git/blobdiff - bin/wizard
Move a number of common parameters to the baton.
[wizard.git] / bin / wizard
index 411c31d6a5c41238881cf867dcf0cbce04ba06ff..dad334e1cf3257e5d0e0390141a015bb7cef0b55 100755 (executable)
@@ -17,11 +17,12 @@ Wizard is a Git-based autoinstall management system for scripts.
 Its commands are:
     configure       Configures an autoinstall (database, etc) to work
     errors          Lists all broken autoinstall metadata
-    info            Reports information about an autoinstall
     install         Installs an application
     list            Lists autoinstalls, with optional filtering
-    massmigrate     Performs mass migration of autoinstalls of an application
+    mass-migrate    Performs mass migration of autoinstalls of an application
     migrate         Migrate autoinstalls from old format to Git-based format
+    prepare-config  Prepares configuration files for versioning
+    research        Print statistics about a possible upgrade
     summary         Generate statistics (see help for subcommands)
     upgrade         Upgrades an autoinstall to the latest version
 
@@ -32,17 +33,32 @@ See '%prog help COMMAND' for more information on a specific command."""
     _, args = parser.parse_args() # no global options
     rest_argv = args[1:]
     baton = command.OptionBaton()
-    baton.add("--versions-path", dest="versions_path",
+    baton.add("--versions-path", dest="versions_path", metavar="PATH",
         default=getenvpath("WIZARD_VERSIONS_PATH") or "/afs/athena.mit.edu/contrib/scripts/sec-tools/store/versions",
         help="Location of parallel-find output directory, or a file containing a newline separated list of 'all autoinstalls' (for development work).  Environment variable is WIZARD_VERSIONS_PATH.")
-    baton.add("--srv-path", dest="srv_path",
+    baton.add("--srv-path", dest="srv_path", metavar="PATH",
         default=getenvpath("WIZARD_SRV_PATH") or "/afs/athena.mit.edu/contrib/scripts/git/autoinstalls",
         help="Location of autoinstall Git repositories, such that $REPO_PATH/$APP.git is a repository (for development work).  Environment variable is WIZARD_SRV_PATH.")
+    baton.add("--dry-run", dest="dry_run", action="store_true",
+            default=False, help="Print the results of the operation without actually executing them")
+    # common variables for mass commands
+    baton.add("--seen", dest="seen",
+            default=None, help="File to read/write paths of already processed installs."
+            "These will be skipped.")
+    baton.add("--no-parallelize", dest="no_parallelize", action="store_true",
+            default=False, help="Turn off parallelization")
+    baton.add("--max-processes", dest="max_processes", type="int", metavar="N",
+            default=10, help="Maximum subprocesses to run concurrently")
+    baton.add("--limit", dest="limit", type="int",
+            default=None, help="Limit the number of autoinstalls to look at.")
     try:
         command_name = args[0]
     except IndexError:
         parser.print_help()
         raise SystemExit(1)
+    baton.add("--log-dir", dest="log_dir",
+        default=getenvpath("WIZARD_LOG_DIR") or "/tmp/wizard-%s" % command_name,
+        help="Log files for Wizard children processes are placed here.")
     if command_name == "help":
         try:
             help_module = get_command(rest_argv[0])
@@ -60,6 +76,7 @@ See '%prog help COMMAND' for more information on a specific command."""
     command_module.main(rest_argv, baton)
 
 def get_command(name):
+    name = name.replace("-", "_")
     __import__("wizard.command." + name)
     return getattr(wizard.command, name)