mirror of https://github.com/ARMmbed/mbed-os.git
Use custom agrparse.Action to handle input parameters
parent
09af58fad5
commit
c0a1c45ae5
|
|
@ -35,6 +35,24 @@ cherry_pick_re = re.compile(
|
||||||
'\s*\(cherry picked from commit (([0-9]|[a-f]|[A-F])+)\)')
|
'\s*\(cherry picked from commit (([0-9]|[a-f]|[A-F])+)\)')
|
||||||
|
|
||||||
|
|
||||||
|
class StoreDir(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
directory = os.path.abspath(values)
|
||||||
|
if not os.path.isdir(directory):
|
||||||
|
raise argparse.ArgumentError(
|
||||||
|
None, "The directory %s does not exist!" % directory)
|
||||||
|
setattr(namespace, self.dest, directory)
|
||||||
|
|
||||||
|
|
||||||
|
class StoreValidFile(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
fn = os.path.abspath(values)
|
||||||
|
if not os.path.isfile(fn):
|
||||||
|
raise argparse.ArgumentError(
|
||||||
|
None, "The file %s does not exist!" % fn)
|
||||||
|
setattr(namespace, self.dest, fn)
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -170,19 +188,22 @@ def normalize_commit_sha(sha_lst):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__,
|
parser = argparse.ArgumentParser(
|
||||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
description=__doc__,
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
|
|
||||||
parser.add_argument('-l', '--log-level',
|
parser.add_argument('-l', '--log-level',
|
||||||
help="Level for providing logging output",
|
help="Level for providing logging output",
|
||||||
default='INFO')
|
default='INFO')
|
||||||
parser.add_argument('-r', '--repo-path',
|
parser.add_argument('-r', '--repo-path',
|
||||||
help="Git Repository to be imported",
|
help="Git Repository to be imported",
|
||||||
default=None,
|
required=True,
|
||||||
required=True)
|
action=StoreDir)
|
||||||
parser.add_argument('-c', '--config-file',
|
parser.add_argument('-c', '--config-file',
|
||||||
help="Configuration file",
|
help="Configuration file",
|
||||||
default=None,
|
required=True,
|
||||||
required=True)
|
action=StoreValidFile)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
level = getattr(logging, args.log_level.upper())
|
level = getattr(logging, args.log_level.upper())
|
||||||
|
|
||||||
|
|
@ -194,33 +215,13 @@ if __name__ == "__main__":
|
||||||
logging.basicConfig(level=level)
|
logging.basicConfig(level=level)
|
||||||
rel_log = logging.getLogger("Importer")
|
rel_log = logging.getLogger("Importer")
|
||||||
|
|
||||||
if (args.repo_path is None) or (args.config_file is None):
|
sha = get_curr_sha(args.repo_path)
|
||||||
rel_log.error(
|
repo_dir = os.path.basename(args.repo_path)
|
||||||
"Repository path and config file required as input. "
|
branch = 'feature_' + repo_dir + '_' + sha
|
||||||
"Use \"--help\" for more info.")
|
commit_msg = "[" + repo_dir + "]" + ": Updated to " + sha
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
json_file = abspath(args.config_file)
|
|
||||||
if not os.path.isfile(json_file):
|
|
||||||
rel_log.error("%s not found.", args.config_file)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
repo = abspath(args.repo_path)
|
|
||||||
if not os.path.exists(repo):
|
|
||||||
rel_log.error("%s not found.", args.repo_path)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
sha = get_curr_sha(repo)
|
|
||||||
if not sha:
|
|
||||||
rel_log.error("Could not obtain latest SHA")
|
|
||||||
sys.exit(1)
|
|
||||||
rel_log.info("%s SHA = %s", os.path.basename(repo), sha)
|
|
||||||
|
|
||||||
branch = 'feature_' + os.path.basename(repo) + '_' + sha
|
|
||||||
commit_msg = "[" + os.path.basename(repo) + "]" + ": Updated to " + sha
|
|
||||||
|
|
||||||
# Read configuration data
|
# Read configuration data
|
||||||
with open(json_file, 'r') as config:
|
with open(args.config_file, 'r') as config:
|
||||||
json_data = json.load(config)
|
json_data = json.load(config)
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
@ -252,7 +253,7 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
# Copy all the files listed in json file to mbed-os
|
# Copy all the files listed in json file to mbed-os
|
||||||
for fh in data_files:
|
for fh in data_files:
|
||||||
repo_file = join(repo, fh['src_file'])
|
repo_file = join(args.repo_path, fh['src_file'])
|
||||||
mbed_path = join(ROOT, fh['dest_file'])
|
mbed_path = join(ROOT, fh['dest_file'])
|
||||||
mkdir(dirname(mbed_path))
|
mkdir(dirname(mbed_path))
|
||||||
copy_file(repo_file, mbed_path)
|
copy_file(repo_file, mbed_path)
|
||||||
|
|
@ -260,7 +261,7 @@ if __name__ == "__main__":
|
||||||
normpath(mbed_path))
|
normpath(mbed_path))
|
||||||
|
|
||||||
for folder in data_folders:
|
for folder in data_folders:
|
||||||
repo_folder = join(repo, folder['src_folder'])
|
repo_folder = join(args.repo_path, folder['src_folder'])
|
||||||
mbed_path = join(ROOT, folder['dest_folder'])
|
mbed_path = join(ROOT, folder['dest_folder'])
|
||||||
copy_folder(repo_folder, mbed_path)
|
copy_folder(repo_folder, mbed_path)
|
||||||
rel_log.debug("Copied %s to %s", normpath(repo_folder),
|
rel_log.debug("Copied %s to %s", normpath(repo_folder),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue