diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-05-12 19:46:56 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-13 14:16:05 +0200 |
| commit | 0ec2605865047df05ca232a243facd441d022929 (patch) | |
| tree | e739e869c9f1946b0fe9528d3d429f40929e75cf | |
| parent | 785c950f9eeb3e1b274785ab9469df389e60af1f (diff) | |
Add notarize command.notarize
| -rwxr-xr-x | cdist | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -26,6 +26,7 @@ import glob import inspect import multiprocessing import os +from pathlib import Path import platform import re import shlex @@ -795,6 +796,9 @@ class OSXTarget(Target): raise Error('macOS packages must be returned from cscript as tuples of (dmg-filename, bundle-id)') if notarize: notarize_dmg(x[0], x[1]) + else: + with open(dmg + '.id', 'w') as f: + print(x[1], out=f) return [x[0] for x in p] @@ -1169,6 +1173,8 @@ def main(): parser_checkout = subparsers.add_parser("checkout", help="check out the project") parser_revision = subparsers.add_parser("revision", help="print the head git revision number") parser_dependencies = subparsers.add_parser("dependencies", help="print details of the project's dependencies as a .dot file") + parser_notarize = subparsers.add_parser("notarize", help="notarize .dmgs in a directory using *.dmg.id files") + parser_notarize.add_argument('--dmgs', help='directory containing *.dmg and *.dmg.id') global args args = parser.parse_args() @@ -1199,7 +1205,7 @@ def main(): if not os.path.exists(args.work): os.makedirs(args.work) - if args.project is None and args.command != 'shell': + if args.project is None and not args.command in ['shell', 'notarize']: raise Error('you must specify -p or --project') globals.quiet = args.quiet @@ -1379,6 +1385,18 @@ def main(): print("%s -> %s;" % (d[2].name.replace("-", "-"), d[0].name.replace("-", "_"))) print("}") + elif args.command == 'notarize': + if args.dmgs is None: + raise Error('you must specify ---dmgs') + + for dmg in Path(args.dmgs).glob('*.dmg'): + id = None + try: + with open(str(dmg) + '.id') as f: + id = f.readline().strip() + except OSError: + raise Error('could not find ID file for %s' % dmg) + notarize_dmg(dmg, id) try: main() |
