From fbf75b12204438748455347e9cb010ec622b04fe Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 12 Jun 2019 13:04:07 +0000 Subject: [PATCH] projects.py: Ongoing code beautification Signed-off-by: Jan Lindemann --- scripts/projects.py | 131 +++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 68 deletions(-) diff --git a/scripts/projects.py b/scripts/projects.py index 9ab7980c..00a6738a 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -82,10 +82,10 @@ class Projects(object): def debug(self, *objs): if self.opt_debug: - print("DEBUG: ", *objs, file=sys.stderr) + print("DEBUG: ", *objs, file = sys.stderr) def err(self, *objs): - print("ERR: ", *objs, file=sys.stderr) + print("ERR: ", *objs, file = sys.stderr) def proj_dir(self, name): if name == self.top_name: @@ -131,7 +131,7 @@ class Projects(object): if self.glob_os_cascade is not None: return self.glob_os_cascade r = [ 'os', platform.system().lower() ] - os = self.res_cache.run(self.get_os, []) + os = self.opt_os if self.opt_os is not None else self.res_cache.run(self.get_os, []) name = re.sub('-.*', '', os) series = os while True: @@ -305,11 +305,11 @@ class Projects(object): parser = argparse.ArgumentParser(description='pkg-' + rel_type) # TODO: implement Vendor evaluation - parser.add_argument('--subsections', '-S', nargs='?', default=None, help='Subsections to consider, comma-separated') - parser.add_argument('--delimiter', '-d', nargs='?', default=', ', help='Output words delimiter') + parser.add_argument('-S', '--subsections', nargs='?', default=None, help='Subsections to consider, comma-separated') + parser.add_argument('-d', '--delimiter', nargs='?', default=', ', help='Output words delimiter') parser.add_argument('flavour', help='Flavour') parser.add_argument('module', nargs='*', help='Modules') - parser.add_argument('--no-subpackages', '-p', action='store_true', + parser.add_argument('-p', '--no-subpackages', action='store_true', default=False, help='Cut -run and -devel from package names') parser.add_argument('--no-version', action='store_true', default=False, help='Don\'t report version information') @@ -438,7 +438,7 @@ class Projects(object): cmds = [] for line in f: self.debug("checking line ", line) - rr = re.findall('^def *cmd_([a-z0-9_]+).*', line) + rr = re.findall('^ def *cmd_([a-z0-9_]+).*', line) if len(rr): cmds.append(rr[0].replace('_', '-')) f.close() @@ -524,8 +524,8 @@ class Projects(object): #make_cmd = "make " + target + " 2>&1" make_cmd = [ "make", target ] path = find_proj_path_cached(module) - delim_len=120 - delim='---- [%d/%d]: running %s in %s -' % (cur_project, num_projects, make_cmd, path) + delim_len = 120 + delim = '---- [%d/%d]: running %s in %s -' % (cur_project, num_projects, make_cmd, path) delim = delim + '-' * (delim_len - len(delim)) print(',' + delim + ' >') @@ -573,28 +573,24 @@ class Projects(object): # -- parse command line parser = argparse.ArgumentParser(description='janware software project build tool') parser.add_argument('--exclude', default='', help='Space seperated ist of modules to be excluded from build') - parser.add_argument('--debug', '-d', action='store_true', - default=False, help='Output debug information to stderr') - parser.add_argument('--dry-run', '-n', action='store_true', + parser.add_argument('-n', '--dry-run', action='store_true', default=False, help='Don\'t build anything, just print what would be done.') - parser.add_argument('--build-order', '-O', action='store_true', + parser.add_argument('-O', '--build-order', action='store_true', default=False, help='Don\'t build anything, just print the build order.') - parser.add_argument('--ignore-deps', '-I', action='store_true', + parser.add_argument('-I', '--ignore-deps', action='store_true', default=False, help='Don\'t build dependencies, i.e. build only modules specified on the command line') parser.add_argument('target', default='all', help='Build target') parser.add_argument('modules', nargs='+', default='', help='Modules to be built') - args=parser.parse_args(args_) - if args.debug: - self.opt_debug = True + args = parser.parse_args(args_) self.debug("----------------------------------------- running ", ' '.join(args_)) - modules=args.modules - exclude=args.exclude.split() - target=args.target + modules = args.modules + exclude = args.exclude.split() + target = args.target - env_exclude=os.getenv('BUILD_EXCLUDE', '') + env_exclude = os.getenv('BUILD_EXCLUDE', '') if len(env_exclude): print("exluding modules from environment: " + env_exclude) exclude += " " + env_exclude @@ -636,7 +632,7 @@ class Projects(object): def cmd_test(self, args_): parser = argparse.ArgumentParser(description='Test') parser.add_argument('blah', default='', help='The blah argument') - args=parser.parse_args(args_) + args = parser.parse_args(args_) print("blah = " + args.blah) def cmd_os_cascade(self, args_): @@ -645,7 +641,7 @@ class Projects(object): def cmd_ldlibpath(self, args_): parser = argparse.ArgumentParser(description='ldlibpath') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) deps = self.get_modules_from_project_txt(args.module, ['pkg.requires.jw'], [ 'run', 'build', 'devel' ], scope = 2, add_self=True, names_only=True) r = '' @@ -656,7 +652,7 @@ class Projects(object): def cmd_pythonpath(self, args_): parser = argparse.ArgumentParser(description='pythonpath') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) deps = self.get_modules_from_project_txt(args.module, ['pkg.requires.jw'], [ 'run', 'build' ], scope = 2, add_self=True, names_only=True) r = '' @@ -671,7 +667,7 @@ class Projects(object): def cmd_exepath(self, args_): parser = argparse.ArgumentParser(description='exepath') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) deps = self.get_modules_from_project_txt(args.module, ['pkg.requires.jw'], [ 'run', 'build', 'devel' ], scope = 2, add_self=True, names_only=True) self.debug('deps = ', deps) @@ -683,22 +679,22 @@ class Projects(object): def cmd_libname(self, args_): parser = argparse.ArgumentParser(description='libname') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) print(self.get_libname(args.module)) def cmd_ldflags(self, args_): parser = argparse.ArgumentParser(description='ldflags') parser.add_argument('module', nargs='*', help='Modules') parser.add_argument('--exclude', action='append', help='Exclude Modules', default=[]) - parser.add_argument('--add-self', '-s', action='store_true', + parser.add_argument('-s', '--add-self', action='store_true', default=False, help='Include libflags of specified modules, too, not only their dependencies') - args=parser.parse_args(args_) + args = parser.parse_args(args_) print(self.get_ldflags(args.module, args.exclude, args.add_self)) def cmd_cflags(self, args_): parser = argparse.ArgumentParser(description='cflags') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) deps = self.get_modules_from_project_txt(args.module, ['pkg.requires.jw'], 'build', scope = 2, add_self=True, names_only=True) r = '' @@ -709,7 +705,7 @@ class Projects(object): def cmd_path(self, args_): parser = argparse.ArgumentParser(description='path') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) deps = self.get_modules_from_project_txt(args.module, ['pkg.requires.jw'], 'run', scope = 2, add_self=True, names_only=True) r = '' @@ -770,7 +766,7 @@ class Projects(object): def cmd_proj_dir(self, args_): parser = argparse.ArgumentParser(description='proj-dir') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) r = [] for m in args.module: r.append(self.proj_dir(m)) @@ -779,7 +775,7 @@ class Projects(object): def cmd_htdocs_dir(self, args_): parser = argparse.ArgumentParser(description='htdocs-dir') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) r = [] for m in args.module: r.append(self.htdocs_dir(m)) @@ -788,7 +784,7 @@ class Projects(object): def cmd_summary(self, args_): parser = argparse.ArgumentParser(description='summary') parser.add_argument('module', nargs='*', help='Modules') - args=parser.parse_args(args_) + args = parser.parse_args(args_) r = [] for m in args.module: summary = self.get_value(m, "summary", None) @@ -844,8 +840,8 @@ class Projects(object): def cmd_check(self, args_): parser = argparse.ArgumentParser(description='check') parser.add_argument('module', nargs='*', help='Modules') - parser.add_argument('--flavour', '-f', nargs='?', default = 'build') - args=parser.parse_args(args_) + parser.add_argument('-f', '--flavour', nargs='?', default = 'build') + args = parser.parse_args(args_) graph = {} path = [] @@ -870,53 +866,52 @@ class Projects(object): parser.add_argument('--project', default = self.top_name, help = 'Project name') parser.add_argument('section', default = '', help = 'Config section') parser.add_argument('key', default = '', help = 'Config key') - args=parser.parse_args(args_) + args = parser.parse_args(args_) print(self.get_value(args.project, args.section, args.key)) # -------------------------------------------------------------------- here we go def run(self): - if __name__ == "__main__": - skip = 0 - for a in sys.argv[1::]: - self.global_args.append(a) - if a in [ '--prefix', '-p', '--topdir', '-t' ]: - skip = 1 - continue - if skip > 0: - skip = skip -1 - continue - if a[0] != '-': - break - parser = argparse.ArgumentParser(description='Project metadata evaluation') - parser.add_argument('cmd', default='', help='Command') - parser.add_argument('--debug', '-d', action='store_true', - default=False, help='Output debug information to stderr') - parser.add_argument('--topdir', '-t', nargs=1, default = [], help='Project Path') - parser.add_argument('--prefix', '-p', nargs=1, default = [ self.projs_root ], help='Projects Path Prefix') - parser.add_argument('--os', '-O', nargs=1, default = [], help='Target operating system') - parser.add_argument('arg', nargs='*', help='Command arguments') - args = parser.parse_args(self.global_args) + skip = 0 + for a in sys.argv[1::]: + self.global_args.append(a) + if a in [ '-p', '--prefix', '-t', '--topdir', '-O', '--os' ]: + skip = 1 + continue + if skip > 0: + skip = skip -1 + continue + if a[0] != '-': + break - self.opt_debug = args.debug - if len(args.os): - self.opt_os = args.os[0] + parser = argparse.ArgumentParser(description='Project metadata evaluation') + parser.add_argument('-d', '--debug', action='store_true', + default=False, help='Output debug information to stderr') + parser.add_argument('-t', '--topdir', nargs=1, default = [], help='Project Path') + parser.add_argument('-p', '--prefix', nargs=1, default = [ self.projs_root ], help='Projects Path Prefix') + parser.add_argument('-O', '--os', nargs=1, default = [], help='Target operating system') + parser.add_argument('cmd', default='', help='Command, one of: ' + self.commands()) + parser.add_argument('arg', nargs='*', help='Command arguments') + args = parser.parse_args(self.global_args) - self.debug("----------------------------------------- running ", ' '.join(sys.argv)) + self.opt_debug = args.debug + if len(args.os): + self.opt_os = args.os[0] - self.projs_root = args.prefix[0] - if len(args.topdir): - self.topdir = args.topdir[0] + self.debug("----------------------------------------- running ", ' '.join(sys.argv)) + + self.projs_root = args.prefix[0] + if len(args.topdir): + self.topdir = args.topdir[0] if self.topdir: self.top_name = self.res_cache.run(self.read_value, [self.topdir + '/make/project.conf', 'build', 'name']) if not self.top_name: self.top_name = re.sub('-[0-9.-]*$', '', basename(realpath(self.topdir))) - if __name__ == "__main__": - cmd_name = 'cmd_' + args.cmd.replace('-', '_') - cmd = getattr(self, cmd_name) - cmd(sys.argv[(len(self.global_args) + 1)::]) + cmd_name = 'cmd_' + args.cmd.replace('-', '_') + cmd = getattr(self, cmd_name) + cmd(sys.argv[(len(self.global_args) + 1)::]) if __name__ == "__main__": projects = Projects()