in tools/dossier_codesigningtool/dossier_codesigningtool.py [0:0]
def generate_arg_parser():
"""Generate argument parser for tool."""
parser = argparse.ArgumentParser(
description='Tool for signing iOS bundles using dossiers.',
fromfile_prefix_chars='@')
subparsers = parser.add_subparsers(help='Sub-commands')
sign_parser = subparsers.add_parser(
'sign', help='Sign an apple bundle using a dossier.')
sign_parser.add_argument(
'--dossier',
help='Path to input dossier location. Can be a directory or .zip file.')
sign_parser.add_argument(
'--codesign', required=True, type=str, help='Path to codesign binary')
sign_parser.add_argument('bundle', help='Path to the bundle')
sign_parser.set_defaults(func=_sign_bundle)
generate_parser = subparsers.add_parser(
'generate', help='Generate a dossier from a signed bundle.')
generate_parser.add_argument(
'--output',
required=True,
help='Path to output manifest dossier location.')
generate_parser.add_argument(
'--zip',
action='store_true',
help='Zip the final dossier into a file at specified location.')
generate_parser.add_argument(
'--codesign', required=True, type=str, help='Path to codesign binary')
generate_parser.add_argument('bundle', help='Path to the bundle')
generate_parser.set_defaults(func=_generate_manifest_dossier)
create_parser = subparsers.add_parser('create', help='Create a dossier.')
create_parser.add_argument(
'--output',
required=True,
help='Path to output manifest dossier location.')
create_parser.add_argument(
'--zip',
action='store_true',
help='Zip the final dossier into a file at specified location.')
identity_group = create_parser.add_mutually_exclusive_group(required=True)
identity_group.add_argument(
'--codesign_identity', type=str, help='Codesigning identity to be used.')
identity_group.add_argument(
'--infer_identity',
action='store_true',
help='Infer the codesigning identity based on provisioning profile at signing time. If this option is passed, the provisioning profile is mandatory.'
)
create_parser.add_argument(
'--provisioning_profile',
type=str,
help='Optional provisioning profile to be used.')
create_parser.add_argument(
'--entitlements_file',
type=str,
help='Optional path to optional entitlements')
create_parser.add_argument(
'--embedded_dossier',
action='append',
nargs=2,
help='Specifies an embedded bundle dossier to be included in created dossier. Should be in form [relative path of artifact dossier signs] [path to dossier]'
)
create_parser.set_defaults(func=_create_dossier)
embed_parser = subparsers.add_parser(
'embed',
help='Embeds a dossier into an existing dossier. Only supports embedding at the top level of the existing dossier.'
)
embed_parser.add_argument(
'--dossier', required=True, help='Path to dossier location to edit.')
embed_parser.add_argument(
'--embedded_relative_artifact_path',
required=True,
type=str,
help='Relative path of artifact the dossier to be embedded signs')
embed_parser.add_argument(
'--embedded_dossier_path',
required=True,
type=str,
help='Path to dossier to be embedded')
embed_parser.set_defaults(func=_embed_dossier)
return parser