X-Git-Url: https://scripts.mit.edu/gitweb/wizard.git/blobdiff_plain/48a6b1d128d5f1841f3f96e9f8209b418712e2ef..4b2ee92aafcc380eaf4a2c16f9ee08c53ad3a5f8:/wizard/command/migrate.py diff --git a/wizard/command/migrate.py b/wizard/command/migrate.py index cfe4619..fd39dbe 100644 --- a/wizard/command/migrate.py +++ b/wizard/command/migrate.py @@ -15,7 +15,8 @@ def main(argv, baton): command.chdir(dir) check_if_already_migrated(options) - version = calculate_version() + deployment = make_deployment() # uses chdir + version = deployment.app_version repo = version.application.repository tag = version.scripts_tag @@ -24,8 +25,12 @@ def main(argv, baton): sh = shell.Shell(options.dry_run) check_if_tag_exists(sh, repo, tag) make_repository(sh, options, repo, tag) + make_variables(deployment, options) - os.rename(".scripts-version", ".scripts/old-version") # archive + if not options.dry_run: + os.rename(".scripts-version", ".scripts/old-version") # archive + else: + logging.info("mv .scripts-version .scripts/old-version") def parse_args(argv): usage = """usage: %prog migrate [ARGS] DIR @@ -61,10 +66,9 @@ def check_if_already_migrated(options): logging.warning("Force removing .scripts directory") if not options.dry_run: shutil.rmtree(".scripts") -def calculate_version(): +def make_deployment(): try: - d = deploy.Deployment.fromDir(".") - return d.app_version + return deploy.Deployment(".") except IOError as e: if e.errno == errno.ENOENT: raise NotAutoinstallError(dir) @@ -125,6 +129,24 @@ def make_repository(sh, options, repo, tag): except shell.CallError: pass +def make_variables(d, options): + """Make .scripts/variables which contains variables based off of + what was regexed out of existing configuration files.""" + variables = d.extract() + if not options.dry_run: f = open(".scripts/variables", "w") + for k,v in variables.items(): + if v is None: + # once we get everything on the same version, you should + # actually start paying attention to these warnings + logging.warning("Variable %s not found" % k) + else: + logging.debug("Variable %s is %s" % (k,v)) + if not options.dry_run: + f.write("%s %s\n" % (k,v)) + else: + logging.info('# write line "%s %s" to .scripts/variables' % (k,v)) + if not options.dry_run: f.close() + class Error(command.Error): """Base exception for all exceptions raised by migrate""" pass