parser.add_argument("-v", "--verbose", action='store_true', help="Be Verbose") parser.add_argument("-f", "--file", type=argparse.FileType('r'), help="input file") parser.add_argument("-o", "--output-dir", default=".", help="output directory for reference output") parser.add_argument("-n", "--session-name", default="grading", help="Session name") args = parser.parse_args() myaml = yaml.load(args.file.read()) reviewstruct = find_key('review', myaml) if args.verbose: sys.stderr.write("Found review struct: {0}\n".format(reviewstruct)) ec = EmacsClient(servername=args.session_name) for (pid, project_path) in imap(shlex.split, sys.stdin): project_path = urllib.unquote(project_path) for review in reviewstruct: subprocess.call(['tmux', 'send-keys', '-t', 'grading:0.1', "cd \"{path}\"".format(path=os.path.realpath(project_path)), 'C-m']) subprocess.call(['tmux', 'send-keys', '-t', 'grading:0.1', "ls *", 'C-m']) if 'src' in review: actual_files = [ first_match(src_file) for src_file in review['src'] if first_match(src_file) ] for review_file in actual_files[:-1]: if args.verbose: sys.stderr.write("Opening {0} for review\n".format(review_file)) if review_file: ec.open_file(review_file, nowait=True) else: sys.stderr.write("{0}: file not found\n".format(review['src'])) ec.open_file(actual_files[-1]) ec.kill_all()
if __name__ == '__main__': import argparse import fileinput parser = argparse.ArgumentParser("Review diffs generated by running compare_progs") parser.add_argument("-t","--tests", action='store_true', help="Assume input is list of test files (*.test)") parser.add_argument("files", metavar='FILE', nargs="*", help="File name to read numbers from") args = parser.parse_args() ec = EmacsClient() for srcfile in map(str.rstrip, fileinput.input(args.files)): if not args.tests: tfile = '.'.join([srcfile,'test']) else: tfile = srcfile try: test = None with open(tfile, 'rb') as f: test = ast.literal_eval(f.read()) sys.stderr.write("Reviewing {}\n".format(f.name)) ec.open_file(test['diff'],nowait=True) ec.open_file(os.path.join(test['cwd'],test['path'])) ec.kill_all() except IOError as e: sys.stderr.write("{}: IOError {}\n".format(tfile,e))