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
--- /dev/null
+import logging
+import traceback
+import os.path
+
+from wizard import command, deploy, shell, util
+
+def main(argv, baton):
+ options, show = parse_args(argv, baton)
+ sh = shell.Shell()
+ for d in deploy.parse_install_lines(show, options.versions_path):
+ try:
+ d.verify()
+ d.verifyTag(options.srv_path)
+ d.verifyGit(options.srv_path)
+ d.verifyConfigured()
+ print d.location
+ with util.ChangeDirectory(d.location):
+ print sh.safeCall('git', 'diff', '--stat', d.app_version.scripts_tag, 'HEAD', strip=True)
+ except deploy.Error as e:
+ continue
+
+def parse_args(argv, baton):
+ usage = """usage: %prog research APP
+
+Tells you how spectacularly an upgrade here will explode."""
+ parser = command.WizardOptionParser(usage)
+ baton.push(parser, "srv_path")
+ baton.push(parser, "versions_path")
+ options, args = parser.parse_all(argv)
+ if len(args) > 1:
+ parser.error("too many arguments")
+ if not args:
+ parser.error("must specify application to research")
+ return options, args
+