- if len(sys.argv) == 3 and sys.argv[1] == "-s":
- print get_verity_metadata_size(int(sys.argv[2]))
- elif len(sys.argv) == 8:
- data_image_blocks = int(sys.argv[1]) / 4096
- metadata_image = sys.argv[2]
- root_hash = sys.argv[3]
- salt = sys.argv[4]
- block_device = sys.argv[5]
- signer_path = sys.argv[6]
- signing_key = sys.argv[7]
- build_verity_metadata(data_image_blocks, metadata_image, root_hash,
- salt, block_device, signer_path, signing_key)
+ parser = argparse.ArgumentParser()
+ subparsers = parser.add_subparsers()
+
+ parser_size = subparsers.add_parser('size')
+ parser_size.add_argument('partition_size', type=int, action='store', help='partition size')
+ parser_size.set_defaults(dest='size')
+
+ parser_build = subparsers.add_parser('build')
+ parser_build.add_argument('blocks', type=int, help='data image blocks')
+ parser_build.add_argument('metadata_image', action='store', help='metadata image')
+ parser_build.add_argument('root_hash', action='store', help='root hash')
+ parser_build.add_argument('salt', action='store', help='salt')
+ parser_build.add_argument('block_device', action='store', help='block device')
+ parser_build.add_argument('signer_path', action='store', help='verity signer path')
+ parser_build.add_argument('signing_key', action='store', help='verity signing key')
+ parser_build.add_argument('--signer_args', action='store', help='verity signer args')
+ parser_build.set_defaults(dest='build')
+
+ args = parser.parse_args()
+
+ if args.dest == 'size':
+ print get_verity_metadata_size(args.partition_size)