mirror of https://github.com/ARMmbed/mbed-os.git
Use a directory context to simplify git commands
parent
be8a1e804f
commit
d1fa7bd277
|
@ -54,4 +54,3 @@ Note: You must resolve any conflicts that arise during this cherry-pick process.
|
||||||
For example the command below can be used to update CMSIS:
|
For example the command below can be used to update CMSIS:
|
||||||
`python tools\importer\importer.py -c tools\importer\cmsis_importer.json -r <path to cmsis repo>`
|
`python tools\importer\importer.py -c tools\importer\cmsis_importer.json -r <path to cmsis repo>`
|
||||||
|
|
||||||
Note: This script must be run from the mbed-os directory to work correctly.
|
|
||||||
|
|
|
@ -49,6 +49,20 @@ class SetLogLevel(argparse.Action):
|
||||||
logging.basicConfig(level=values)
|
logging.basicConfig(level=values)
|
||||||
|
|
||||||
|
|
||||||
|
class DirContext(object):
|
||||||
|
def __init__(self, dir):
|
||||||
|
self.dir = dir
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
_backup_dir = os.getcwd()
|
||||||
|
os.chdir(self.dir)
|
||||||
|
self.dir = _backup_dir
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||||
|
os.chdir(self.dir)
|
||||||
|
|
||||||
|
|
||||||
def del_file(name):
|
def del_file(name):
|
||||||
"""
|
"""
|
||||||
Delete the file in RTOS/CMSIS/features directory of mbed-os.
|
Delete the file in RTOS/CMSIS/features directory of mbed-os.
|
||||||
|
@ -183,7 +197,7 @@ def branch_exists(name):
|
||||||
:return: True if branch is already present, False otherwise.
|
:return: True if branch is already present, False otherwise.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
cmd = ['git', '-C', ROOT, 'branch']
|
cmd = ['git', 'branch']
|
||||||
_, output = run_cmd_with_output(cmd, exit_on_failure=False)
|
_, output = run_cmd_with_output(cmd, exit_on_failure=False)
|
||||||
|
|
||||||
return name in output
|
return name in output
|
||||||
|
@ -210,7 +224,7 @@ def get_last_cherry_pick_sha():
|
||||||
:return: SHA if found, None otherwise.
|
:return: SHA if found, None otherwise.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
get_commit = ['git', '-C', ROOT, 'log', '-n', '1']
|
get_commit = ['git', 'log', '-n', '1']
|
||||||
_, output = run_cmd_with_output(get_commit, exit_on_failure=True)
|
_, output = run_cmd_with_output(get_commit, exit_on_failure=True)
|
||||||
|
|
||||||
shas = re.findall(
|
shas = re.findall(
|
||||||
|
@ -235,7 +249,7 @@ def normalize_commit_sha(sha_lst):
|
||||||
return [_sha['sha'] if isinstance(_sha, dict) else _sha for _sha in sha_lst]
|
return [_sha['sha'] if isinstance(_sha, dict) else _sha for _sha in sha_lst]
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def get_parser():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description=__doc__,
|
description=__doc__,
|
||||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
|
@ -254,10 +268,11 @@ if __name__ == "__main__":
|
||||||
required=True,
|
required=True,
|
||||||
type=argparse.FileType('r'))
|
type=argparse.FileType('r'))
|
||||||
|
|
||||||
if ROOT not in abspath(os.curdir):
|
return parser
|
||||||
parser.error("This script must be run from the mbed-os directory "
|
|
||||||
"to work correctly.")
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = get_parser()
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
sha = get_curr_sha(args.repo_path)
|
sha = get_curr_sha(args.repo_path)
|
||||||
repo_dir = os.path.basename(args.repo_path)
|
repo_dir = os.path.basename(args.repo_path)
|
||||||
|
@ -315,3 +330,8 @@ if __name__ == "__main__":
|
||||||
run_cmd_with_output(cherry_pick_sha, exit_on_failure=True)
|
run_cmd_with_output(cherry_pick_sha, exit_on_failure=True)
|
||||||
|
|
||||||
rel_log.info("Finished import successfully :)")
|
rel_log.info("Finished import successfully :)")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
with DirContext(ROOT):
|
||||||
|
main()
|
||||||
|
|
Loading…
Reference in New Issue