Build RE baseline and initial Rust workspace
This commit is contained in:
parent
8d1f280e2e
commit
ffaf155ef0
39 changed files with 5974 additions and 8 deletions
57
tools/py/rt3_rekit.py
Normal file
57
tools/py/rt3_rekit.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env python3
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
|
||||
from rt3_rekitlib import (
|
||||
PENDING_TEMPLATE_STORE_DEFAULT_SEEDS,
|
||||
export_pending_template_store,
|
||||
parse_hex,
|
||||
)
|
||||
|
||||
|
||||
def build_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="RT3 CLI RE kit for repeatable branch-deepening exports."
|
||||
)
|
||||
subparsers = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
pending = subparsers.add_parser(
|
||||
"pending-template-store",
|
||||
help="Export the pending-template dispatch-store dossier.",
|
||||
)
|
||||
pending.add_argument("exe_path", type=Path)
|
||||
pending.add_argument("output_dir", type=Path)
|
||||
pending.add_argument(
|
||||
"--seed-addr",
|
||||
action="append",
|
||||
default=[],
|
||||
help="Hex seed address. May be repeated.",
|
||||
)
|
||||
return parser
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = build_parser()
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.command == "pending-template-store":
|
||||
seed_addresses = (
|
||||
[parse_hex(value) for value in args.seed_addr]
|
||||
if args.seed_addr
|
||||
else list(PENDING_TEMPLATE_STORE_DEFAULT_SEEDS)
|
||||
)
|
||||
export_pending_template_store(
|
||||
args.exe_path.resolve(),
|
||||
args.output_dir.resolve(),
|
||||
seed_addresses,
|
||||
)
|
||||
return 0
|
||||
|
||||
parser.error(f"unknown command: {args.command}")
|
||||
return 2
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Loading…
Add table
Add a link
Reference in a new issue