def metrics(params, config): parser = argparse.ArgumentParser() parser.add_argument('-f', '--c-files', dest='c_files' , help='C file(s) to check' , nargs='+') parser.add_argument('-P', '--project', dest='metricProject', help='Display metrics of a project', nargs='*') parser.add_argument('--verbose', dest= 'verbose_mode', type=int, nargs=1) # args = parser.parse_args(params) # verbose = 0 if args.verbose_mode is not None: verbose = args.verbose_mode[0] # --------- if args.c_files is not None: # if len(args.c_files) > 1: for c_file in args.c_files: display_metrics(c_file, metrics_file(c_file), 1) else: c_file=args.c_files[0] print metrics_file(c_file) display_metrics(c_file, metrics_file(c_file), 1) elif args.metricProject is not None: project = utils.checkProject(config, args.metricProject[0]) display_metrics(project, metrics_project(project, verbose), 1) else: print 'no file to apply metrics'
def applyRulesOnProject(rules_file, config, project): cocci_tree_path = config.get('Cocci', 'cocci_path') project_tree_path = config.get('Projects', 'project_path') # Check Project _project = utils.checkProject(config, project) # Check Rules File rules_abspath = utils.checkRulesFile(_project, rules_file) if rules_abspath is None: print "Rules File %s does not exist. Aborting" % rules_file sys.exit(2) # Create list of cocci_files from rules_files cocci_files = [] fd = open(rules_abspath, 'r') for line in fd: if not line.startswith('#'): cocci_files.append(line.strip()) # Command line for cocci_file in cocci_files: cocci_abspath = utils.checkCocciFile(cocci_tree_path, cocci_file) print cocci_abspath if cocci_abspath is not None: command_line = "spatch -sp_file " + cocci_abspath + " -dir " + _project subprocess.call(command_line, shell=True) else: print "%s is not a cocci file" % cocci_file
def applyCocciOnProject(cocci_files, config, project): cocci_tree_path = config.get('Cocci', 'cocci_path') project_tree_path = config.get('Projects', 'project_path') _project = utils.checkProject(project_tree_path, project) for cocci_file in cocci_files: cocci_abspath = utils.checkCocciFile(cocci_tree_path, cocci_file) if cocci_abspath is not None: command_line = "spatch -sp_file " + cocci_abspath + " -dir " + _project subprocess.call(command_line, shell=True) else: print "%s is not a cocci file" % cocci_file