#!/usr/bin/env python3 # vim: sw=2 ts=2 ex: import sys; import os; import argparse; from python.run import run, print_and_run; from python.build import build; def split_args(argv): argv0 = argv[0]; argv = argv[1:]; for i, arg in enumerate(argv): if arg == "--": return argv0, argv[:i], argv[i+1:]; return argv0, argv, []; def parseargs(): parser = argparse.ArgumentParser(description = "build command") parser.add_argument("--build-type", "--buildtype", default = "release"); parser.add_argument("--valgrind", action = "store_true"); argv0, my_args, run_args = split_args(sys.argv); retval = parser.parse_args(my_args); retval.argv0 = argv0; retval.run_args = run_args; return retval; def main(args): exe = build(args); command = (exe, *args.run_args); if args.valgrind: command = ("valgrind", "--exit-on-first-error=yes", ) + command; print_and_run(command); return 0; exit(main(parseargs()));