| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/usr/bin/env python3
- """Utility to work with sample app device files.
- This utility helps with the following:
- - Parsing sample app device files.
- - Producing metadata files from sample app device files.
- - Generating names for sample app device files.
- Usage:
- python sample_app_util.py zap <ZAP_FILE> [options]
- python sample_app_util.py zap test_files/sample_zap_file.zap --generate-name
- python sample_app_util.py zap test_files/sample_zap_file.zap --generate-metadata
- """
- import argparse
- import os
- import shutil
- import zap_file_parser
- def zap_cmd_handler(args: argparse.Namespace) -> None:
- """Handles args for zap_cmd_parser."""
- zap_file_path = args.zap_file
- if args.generate_name:
- print(zap_file_parser.generate_name(zap_file_path))
- elif args.rename_file:
- name = zap_file_parser.generate_name(zap_file_path)
- dirpath = os.path.dirname(zap_file_path)
- output_path = os.path.join(dirpath, f"{name}.zap")
- shutil.move(zap_file_path, output_path)
- print(f"Renamed from: {zap_file_path} to {output_path}")
- elif args.generate_metadata:
- created_file = zap_file_parser.generate_metadata_file(zap_file_path)
- print(f"Created {created_file}")
- parser = argparse.ArgumentParser()
- subparsers = parser.add_subparsers(dest="command")
- subparsers.required = True
- zap_cmd_parser = subparsers.add_parser(
- "zap", help="Command to operate on zap files.")
- zap_cmd_parser.add_argument(
- "zap_file", metavar="ZAP_FILE", type=str, help="Zap file to generate name for.")
- zap_cmd_group = zap_cmd_parser.add_mutually_exclusive_group()
- zap_cmd_group.add_argument(
- "--generate-name", action="store_true",
- help="Print the name file name according to the name convention"
- )
- zap_cmd_parser.add_argument(
- "--generate-metadata", action="store_true",
- help=(
- "Generate the metadata file which provides summary information about the app.")
- )
- zap_cmd_group.add_argument(
- "--rename-file", action='store_true',
- help="Rename the target zap file according to name convention."
- )
- zap_cmd_parser.set_defaults(func=zap_cmd_handler)
- if __name__ == "__main__":
- args = parser.parse_args()
- args.func(args)
|