32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import argparse, sys
|
|
from config import Config
|
|
from orchestrator import run_pipeline
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="COBOL->Java migration verification")
|
|
parser.add_argument("--copybook", required=True)
|
|
parser.add_argument("--cobol-src", required=True)
|
|
parser.add_argument("--java-src", required=True)
|
|
parser.add_argument("--mapping", required=True)
|
|
parser.add_argument("--runner", choices=["native", "spark"], default="native")
|
|
parser.add_argument("--coverage", choices=["boundary", "branch"], default="boundary")
|
|
parser.add_argument("--tolerance", type=float, default=0.01)
|
|
parser.add_argument("--verbose", action="store_true")
|
|
parser.add_argument("--output-dir", default="./reports")
|
|
args = parser.parse_args()
|
|
|
|
cfg = Config()
|
|
cfg.runner_mode = args.runner
|
|
cfg.coverage_default = args.coverage
|
|
cfg.tolerance = args.tolerance
|
|
|
|
vr = run_pipeline(cfg, args.copybook, args.cobol_src, args.java_src, args.mapping)
|
|
total = vr.fields_matched + vr.fields_mismatched
|
|
print(f"{vr.program}: {vr.status} ({vr.fields_matched}/{total} fields, {vr.duration_s:.0f}s)")
|
|
sys.exit(vr.exit_code)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|