Decorator to eegit
Crear un decorator que ejecute el comando de git en varios directorios provistos, basicamente que el codigo que ahora esta dentro de cada funcion (status, checkout, etc) se lleve a un decorator ya que se repite en todas estas, en el ejemplo se muestra de que parte de codigo se habla. Ej: Ahora el git status esta asi:
@click.pass_context
def status(ctx):
""" Git status command """
path = Path('.').resolve()
_all = ctx.obj.get('_all', False)
repo_paths = ctx.obj.get('paths', False)
# Priority to given repositorie paths
if _all and not repo_paths:
repo_paths = [p.parent.resolve() for p in path.glob("*/.git")]
if repo_paths:
for repo_path in repo_paths:
_status(repo_path)
return
_status(path)```
La idea es dejarlo asi:
@git_command.command() @click.pass_context @new_decorator def status(ctx, path): """ Git status command """ _status(path)
Edited by Leandro Martinek