Source code for cookiecutter.cleanup
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
cookiecutter.cleanup
--------------------
Functions for cleaning up after Cookiecutter project generation occurs.
"""
from __future__ import unicode_literals
import logging
import os
import shutil
from .exceptions import MissingProjectDir
[docs]def remove_repo(repo_dir, generated_project):
"""
Move the generated project to the same level as `repo_dir`, then delete
`repo_dir`.
Called when Cookiecutter receives a repo as an argument instead of a
project template directory.
:param repo_dir: Local directory of the cloned repo.
:param generated_project: Name of project that Cookiecutter just
generated. All lowercase, no spaces or funny characters.
:returns: True if successful, else False.
"""
logging.debug('Moving {0} out of {1} and removing {1}'.format(generated_project, repo_dir))
parent_dir = os.path.dirname(os.path.abspath(repo_dir))
logging.debug('parent_dir is {0}'.format(parent_dir))
project_dir = os.path.join(repo_dir, generated_project)
logging.debug('project_dir is {0}'.format(project_dir))
if os.path.exists(project_dir):
shutil.move(project_dir, parent_dir)
shutil.rmtree(repo_dir)
return True
else:
raise MissingProjectDir(
'The project did not get generated. Please file an issue in '
'Cookiecutter with as much detail as possible about what happened.'
)