Source code for pyscaffold.repo
# -*- coding: utf-8 -*-
from __future__ import print_function, absolute_import
from os.path import join as join_path
from sh import git
from six import string_types
from . import utils
__author__ = "Florian Wilhelm"
__copyright__ = "Blue Yonder"
__license__ = "new BSD"
[docs]def git_tree_add(struct, prefix=""):
for name, content in struct.items():
if isinstance(content, string_types):
git("add", join_path(prefix, name))
elif isinstance(content, dict):
git_tree_add(struct[name], prefix=join_path(prefix, name))
else:
raise RuntimeError("Don't know what to do with content type "
"{type}.".format(type=type(content)))
[docs]def init_commit_repo(project, struct):
with utils.chdir(project):
git("init")
git_tree_add(struct[project])
git("commit", "-m", "Initial commit")