From 41c0f34d95ccf0ae3b2cf1b6f299088a5bdfe33c Mon Sep 17 00:00:00 2001 From: Ruud Date: Sat, 27 Oct 2012 18:22:40 +0200 Subject: [PATCH] Properly restart --- Desktop.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Desktop.py b/Desktop.py index 457a52a..70b32c7 100644 --- a/Desktop.py +++ b/Desktop.py @@ -1,3 +1,4 @@ +from esky.util import appdir_from_executable #@UnresolvedImport from threading import Thread from wx.lib.softwareupdate import SoftwareUpdate import os @@ -5,8 +6,6 @@ import sys import time import webbrowser import wx -import subprocess - # Include proper dirs if hasattr(sys, 'frozen'): @@ -214,5 +213,18 @@ if __name__ == '__main__': time.sleep(1) if app.restart: - args = [sys.executable] + [os.path.join(base_path, 'Desktop.py')] + sys.argv[1:] - subprocess.Popen(args) + + def appexe_from_executable(exepath): + appdir = appdir_from_executable(exepath) + exename = os.path.basename(exepath) + + if sys.platform == "darwin": + if os.path.isdir(os.path.join(appdir, "Contents", "MacOS")): + return os.path.join(appdir, "Contents", "MacOS", exename) + + return os.path.join(appdir, exename) + + exe = appexe_from_executable(sys.executable) + os.chdir(os.path.dirname(exe)) + + os.execv(exe, [exe] + sys.argv[1:])