From 0ec2605865047df05ca232a243facd441d022929 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 12 May 2021 19:46:56 +0200 Subject: Add notarize command. --- cdist | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/cdist b/cdist index 3db8637..7f55522 100755 --- a/cdist +++ b/cdist @@ -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() -- cgit v1.2.3