mirror of
https://github.com/qmk/qmk_cli.git
synced 2026-07-25 16:42:55 -04:00
41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
"""Helpers for working with git.
|
|
"""
|
|
import subprocess
|
|
|
|
from milc import cli
|
|
|
|
default_repo = 'qmk_firmware'
|
|
default_fork = 'qmk/' + default_repo
|
|
default_branch = 'master'
|
|
|
|
|
|
def git_clone(url, destination, branch):
|
|
git_clone = [
|
|
'git',
|
|
'clone',
|
|
'--recurse-submodules',
|
|
'--branch=' + branch,
|
|
url,
|
|
str(destination),
|
|
]
|
|
cli.log.debug('Git clone command: %s', git_clone)
|
|
|
|
try:
|
|
with subprocess.Popen(git_clone, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, bufsize=1, universal_newlines=True, encoding='utf-8') as p:
|
|
for line in p.stdout:
|
|
print(line, end='')
|
|
|
|
except Exception as e:
|
|
git_cmd = ' '.join([s.replace(' ', r'\ ') for s in git_clone])
|
|
|
|
cli.log.error("Could not run '%s': %s: %s", git_cmd, e.__class__.__name__, e)
|
|
return False
|
|
|
|
if p.returncode == 0:
|
|
cli.log.info('Successfully cloned %s to %s!', url, destination)
|
|
return True
|
|
|
|
else:
|
|
cli.log.error('git clone exited %d', p.returncode)
|
|
return False
|