summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-05-12 19:46:56 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-13 14:16:05 +0200
commit0ec2605865047df05ca232a243facd441d022929 (patch)
treee739e869c9f1946b0fe9528d3d429f40929e75cf
parent785c950f9eeb3e1b274785ab9469df389e60af1f (diff)
Add notarize command.notarize
-rwxr-xr-xcdist20
1 files changed, 19 insertions, 1 deletions
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()