def fresh_cookies(ctx, mold=''):
"""Refresh the project from the original cookiecutter template."""
mold = mold or "https://github.com/Springerle/py-generic-project.git" # TODO: URL from config
tmpdir = os.path.join(tempfile.gettempdir(), "cc-upgrade-config-sesame")
if os.path.isdir('.git'):
# TODO: Ensure there are no local unstashed changes
pass
# Make a copy of the new mold version
if os.path.isdir(tmpdir):
shutil.rmtree(tmpdir)
if os.path.exists(mold):
shutil.copytree(mold, tmpdir, ignore=shutil.ignore_patterns(
".git", ".svn", "*~",
))
else:
ctx.run("git clone {} {}".format(mold, tmpdir))
# Copy recorded "cookiecutter.json" into mold
shutil.copy2("project.d/cookiecutter.json", tmpdir)
with pushd('..'):
ctx.run("cookiecutter --no-input {}".format(tmpdir))
if os.path.exists('.git'):
ctx.run("git status")
评论列表
文章目录