parser = WizardOptionParser(usage)
parser.add_option("--dry-run", dest="dry_run", action="store_true",
default=False, help="Prints would would be run without changing anything")
+ parser.add_option("--force", "-f", dest="force", action="store_true",
+ default=False, help="If .git or .scripts directory already exists, delete them and migrate")
options, args, logger = parser.parse_all(argv, logger)
if len(args) > 1:
parser.error("too many arguments")
elif e.errno == 2:
raise NoSuchDirectoryError(dir)
else: raise e
- if os.path.isdir(".git"):
- raise AlreadyMigratedError(dir)
+ if os.path.isdir(".git") or os.path.isdir(".scripts"):
+ if not options.force:
+ raise AlreadyMigratedError(dir)
+ else:
+ if os.path.isdir(".git"):
+ logger.warning("Force removing .git directory")
+ shutil.rmtree(".git")
+ if os.path.isdir(".scripts"):
+ logger.warning("Force removing .scripts directory")
+ shutil.rmtree(".scripts")
try:
deploy = wd.Deployment.fromDir(".")
version = deploy.getAppVersion()
did_git_checkout_scripts = True
# XXX: setup .scripts/version???
# for verbose purposes, give us a git status and git diff
- raise NotImplementedError
if options.verbose:
shell.call("git", "status")
shell.call("git", "diff")
except:
- logger.error("ERROR: Exception detected! Rolling back...")
+ # this... is pretty bad
+ logger.critical("ERROR: Exception detected! Rolling back...")
if did_git_init:
shell.call("rm", "-Rf", ".git")
if did_git_checkout_scripts: