Improve git_commit helper

This commit is contained in:
Anthony Sottile 2018-12-28 15:13:06 -08:00
parent 28c97a95cd
commit 160a11a0a7
10 changed files with 75 additions and 84 deletions

View file

@ -49,7 +49,7 @@ def make_repo(tempdir_factory, repo_source):
path = git_dir(tempdir_factory)
copy_tree_to_path(get_resource_path(repo_source), path)
cmd_output('git', 'add', '.', cwd=path)
git_commit('Add hooks', cwd=path)
git_commit(msg=make_repo.__name__, cwd=path)
return path
@ -64,7 +64,7 @@ def modify_manifest(path):
yield manifest
with io.open(manifest_path, 'w') as manifest_file:
manifest_file.write(ordered_dump(manifest, **C.YAML_DUMP_KWARGS))
git_commit('update {}'.format(C.MANIFEST_FILE), cwd=path)
git_commit(msg=modify_manifest.__name__, cwd=path)
@contextlib.contextmanager
@ -79,7 +79,7 @@ def modify_config(path='.', commit=True):
with io.open(config_path, 'w', encoding='UTF-8') as config_file:
config_file.write(ordered_dump(config, **C.YAML_DUMP_KWARGS))
if commit:
git_commit('update config', cwd=path)
git_commit(msg=modify_config.__name__, cwd=path)
def config_with_local_hooks():
@ -135,13 +135,13 @@ def write_config(directory, config, config_file=C.CONFIG_FILE):
def add_config_to_repo(git_path, config, config_file=C.CONFIG_FILE):
write_config(git_path, config, config_file=config_file)
cmd_output('git', 'add', config_file, cwd=git_path)
git_commit('Add hooks config', cwd=git_path)
git_commit(msg=add_config_to_repo.__name__, cwd=git_path)
return git_path
def remove_config_from_repo(git_path, config_file=C.CONFIG_FILE):
cmd_output('git', 'rm', config_file, cwd=git_path)
git_commit('Remove hooks config', cwd=git_path)
git_commit(msg=remove_config_from_repo.__name__, cwd=git_path)
return git_path

View file

@ -135,16 +135,11 @@ def cwd(path):
os.chdir(original_cwd)
def git_commit(msg, *_args, **kwargs):
args = ['git']
config = kwargs.pop('config', None)
if config is not None:
args.extend(['-C', config])
args.append('commit')
if msg is not None:
args.extend(['-m', msg])
if '--allow-empty' not in _args:
args.append('--allow-empty')
if '--no-gpg-sign' not in _args:
args.append('--no-gpg-sign')
return cmd_output(*(tuple(args) + tuple(_args)), **kwargs)
def git_commit(*args, **kwargs):
fn = kwargs.pop('fn', cmd_output)
msg = kwargs.pop('msg', 'commit!')
cmd = ('git', 'commit', '--allow-empty', '--no-gpg-sign', '-a') + args
if msg is not None: # allow skipping `-m` with `msg=None`
cmd += ('-m', msg)
return fn(*cmd, **kwargs)