import argparse
import os
import shutil
import sys
def build_argument_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Copy module_info.json file")
parser.add_argument("--src", required=True, help="Source file path")
parser.add_argument("--dst", required=True, help="Destination file path")
return parser
def ensure_parent_dir(path: str) -> None:
dst_dir = os.path.dirname(path)
if dst_dir and not os.path.exists(dst_dir):
os.makedirs(dst_dir)
def main() -> int:
args = build_argument_parser().parse_args()
try:
ensure_parent_dir(args.dst)
shutil.copy2(args.src, args.dst)
return 0
except Exception as exc:
print(f"Error copying file: {exc}", file=sys.stderr)
return 1
if __name__ == "__main__":
sys.exit(main())