Hi,

The following patch enables the name of the stub executable to determine the Python script to run. This allows multiple scripts to use a common runtime.

Required manual steps are to make copies of the stub in ./MacOS and to copy the actual Python scripts into ./Resources.

N.B. The py2app/apptemplate/prebuilt contents need to be recreated by running 'python setup.py build' in py2app/apptemplate, before running the main 'setup.py install'.


Enjoy!

Dave

=================================================

diff --git a/py2app/apptemplate/src/main.c b/py2app/apptemplate/src/main.c
--- a/py2app/apptemplate/src/main.c
+++ b/py2app/apptemplate/src/main.c
@@ -1017,8 +1017,9 @@

     argv_new = alloca((argc + 1) * sizeof(char *));
     argv_new[argc] = NULL;
-    argv_new[0] = c_mainScript;
-    memcpy(&argv_new[1],&argv[1], (argc - 1) * sizeof(char *));
+    //argv_new[0] = c_mainScript;
+    //memcpy(&argv_new[1],&argv[1], (argc - 1) * sizeof(char *));
+    memcpy(argv_new, argv, argc * sizeof(char *));
     py2app_PySys_SetArgv(argc, argv_new);


diff --git a/py2app/bootstrap/boot_app.py b/py2app/bootstrap/boot_app.py
--- a/py2app/bootstrap/boot_app.py
+++ b/py2app/bootstrap/boot_app.py
@@ -7,7 +7,7 @@
     site.addsitedir(os.path.join(base, 'Python', 'site-packages'))
     if not scripts:
         import __main__
-    for script in scripts:
-        path = os.path.join(base, script)
-        sys.argv[0] = __file__ = path
-        execfile(path, globals(), globals())
+    script = sys.argv[0].split('/')[-1] + '.py'
+    path = os.path.join(base, script)
+    sys.argv[0] = __file__ = path
+    execfile(path, globals(), globals())

=================================================


_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to