def command(c):
log_normal(c)
- r = os.system(c)
- if (r >> 8):
- raise Error('command %s failed' % c)
+ try:
+ r = subprocess.run(c, shell=True)
+ if r.returncode != 0:
+ raise Error('command %s failed (%d)' % (c, r.returncode))
+ except Exception as e:
+ raise Error('command %s failed (%s)' % (c, e))
def command_and_read(c):
log_normal(c)
def string_after(process, key):
lines = p.stdout.decode('utf-8').splitlines()
- request_uuid = None
for i in range(0, len(lines)):
if lines[i].find(key) != -1:
return lines[i+1].strip().replace('<string>', '').replace('</string>', '')
- raise Error("Missing expected response %s from Apple" % key)
-
request_uuid = string_after(p, "RequestUUID")
+ if request_uuid is None:
+ raise Error('No RequestUUID found in response from Apple')
for i in range(0, 30):
print('Checking up on %s' % request_uuid)
elif status == 'success':
subprocess.run(['xcrun', 'stapler', 'staple', dmg])
return
+ elif status != "in progress":
+ print("Could not understand xcrun response")
+ print(p)
time.sleep(30)
raise Error("Notarization timed out")
def cleanup(self):
rmtree(self.directory)
- def package(self, project, checkout, output_dir, options):
+ def package(self, project, checkout, output_dir, options, no_notarize):
tree = globals.trees.get(project, checkout, self)
with TreeDirectory(tree):
name = read_wscript_variable(os.getcwd(), 'APPNAME')