Wizard is a Git-based autoinstall management system for scripts.
Its commands are:
- info Reports information about an autoinstall
- migrate Migrate autoinstalls from old format to Git-based format
- summary Generate statistics about autoinstalls
+ info Reports information about an autoinstall
+ massmigrate Performs mass migration of autoinstalls of an application
+ migrate Migrate autoinstalls from old format to Git-based format
+ summary Generate statistics about autoinstalls
See '%prog help COMMAND' for more information on a specific command."""
--- /dev/null
+import optparse
+import sys
+import os
+import shutil
+
+import migrate
+import wizard.deploy as wd
+import wizard.shell as sh
+from wizard import *
+
+def massmigrate(argv, global_options, logger = None):
+ usage = """usage: %prog massmigrate [ARGS] APPLICATION
+
+Mass migrates an application to the new repository format.
+Essentially equivalent to running '%prog migrate' on all
+autoinstalls for a particular application found by parallel-find,
+but with advanced reporting.
+
+NOTE: --verbose implies --no-parallelize, as it results in
+output going to stdout/stderr."""
+ parser = WizardOptionParser(usage)
+ parser.add_option("--no-parallelize", dest="no_parallelize", action="store_true",
+ default=False, help="Turn off parallelization")
+ parser.add_option("--dry-run", dest="dry_run", action="store_true",
+ default=False, help="Print commands that would be run. Implies --no-parallelize")
+ options, args, logger = parser.parse_all(argv, logger)
+ if len(args) > 1:
+ parser.error("too many arguments")
+ elif not args:
+ parser.error("must specify application to migrate")
+ if options.verbose or options.dry_run:
+ options.no_parallelize = True
+ app = args[0]
+ base_args = []
+ if options.verbose: base_args.append("--verbose")
+ if options.dry_run: base_args.append("--dry-run")
+ logger.info(app)
+ raise NotImplementedError
proc = None
if self.logger:
if hasattr(self.logger, "verbose"):
+ # this is a special short-circuit to make redrawing
+ # output from Git work
proc = subprocess.Popen(args, stdout=sys.stdout, stderr=sys.stderr)
else:
proc = subprocess.Popen(args, stdout=PIPE, stderr=STDOUT)