diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2013-11-26 09:25:10 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2013-11-26 09:25:10 -0500 |
commit | 9e986201ba342836260c6db6e532db04d31153d9 (patch) | |
tree | b9dd7d05b57602aa7ffca0ddfca76c6fb6650cb9 /indra | |
parent | 787ccaf297e81291469aaf269f563d862fb150a3 (diff) |
MAINT-3489: Make Mac updater script detect prematurely deleted .dmg.
Also, delete it when done.
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/viewer_components/updater/scripts/darwin/update_install.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/viewer_components/updater/scripts/darwin/update_install.py b/indra/viewer_components/updater/scripts/darwin/update_install.py index 10d507c9ef..08f4f0ebb9 100755 --- a/indra/viewer_components/updater/scripts/darwin/update_install.py +++ b/indra/viewer_components/updater/scripts/darwin/update_install.py @@ -199,6 +199,11 @@ def main(dmgfile, markerfile, markertext): # prepare for other cleanup with Janitor(LOGF) as janitor: + # Under some circumstances, this script seems to be invoked with a + # nonexistent pathname. Check for that. + if not os.path.isfile(dmgfile): + fail(dmgfile + " has been deleted") + # Try to derive the name of the running viewer app bundle from our # own pathname. (Hopefully the old viewer won't copy this script # to a temp dir before running!) @@ -376,6 +381,13 @@ def main(dmgfile, markerfile, markertext): log(' '.join(command)) subprocess.check_call(command, stdout=LOGF, stderr=subprocess.STDOUT) + # If all the above succeeded, delete the .dmg file. We don't do this + # as a janitor.later() operation because we only want to do it if we + # get this far successfully. Note that this is out of the scope of the + # Janitor: we must detach the .dmg before removing it! + log("rm " + dmgfile) + os.remove(dmgfile) + except Exception, err: # Because we carefully set sys.excepthook -- and even modify it to log # the problem once we have our log file open -- you might think we |