From 4c58dd1bbee0dcfb227fd7de836b92492c9b3ae2 Mon Sep 17 00:00:00 2001 From: Mika Date: Tue, 13 Jan 2026 11:17:04 +0000 Subject: [PATCH] Add trace_analysis/src/trace_analysis/cli.py --- trace_analysis/src/trace_analysis/cli.py | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 trace_analysis/src/trace_analysis/cli.py diff --git a/trace_analysis/src/trace_analysis/cli.py b/trace_analysis/src/trace_analysis/cli.py new file mode 100644 index 0000000..dff00ca --- /dev/null +++ b/trace_analysis/src/trace_analysis/cli.py @@ -0,0 +1,30 @@ +import argparse +import json +from pathlib import Path +from trace_analysis import core + +def main(): + """Command-line interface to run trace analysis.""" + parser = argparse.ArgumentParser(description="Analyze CPU migration trace data.") + parser.add_argument( + "--input", + required=True, + help="Path to the JSON input file with trace data." + ) + args = parser.parse_args() + + input_path = Path(args.input) + if not input_path.exists(): + raise FileNotFoundError(f"Input file not found: {input_path}") + + with input_path.open("r", encoding="utf-8") as f: + trace_data = json.load(f) + + # Analyze trace data using the core module + result = core.analyze_trace(trace_data) + + # Print results as formatted JSON + print(json.dumps(result, indent=2, ensure_ascii=False)) + +if __name__ == "__main__": + main() \ No newline at end of file