]> granicus.if.org Git - python/commitdiff
Added a --python option, which sets the python to be used in the #! line
authorJack Jansen <jack.jansen@cwi.nl>
Sun, 25 May 2003 22:00:17 +0000 (22:00 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Sun, 25 May 2003 22:00:17 +0000 (22:00 +0000)
in the bootstrap script of the applet.

Lib/plat-mac/bundlebuilder.py
Mac/scripts/BuildApplet.py

index 26c38865d64415efe84d4448bd07daec43405e02..1a15591a55b802af41427d47c3c60b5718d81a25 100755 (executable)
@@ -332,6 +332,9 @@ class AppBuilder(BundleBuilder):
     # If True, build standalone app.
     standalone = 0
     
+    # If set, use this for #! lines in stead of sys.executable
+    python = None
+    
     # If True, add a real main program that emulates sys.argv before calling
     # mainprogram
     argv_emulation = 0
@@ -442,6 +445,8 @@ class AppBuilder(BundleBuilder):
                 # XXX we're screwed when the end user has deleted
                 # /usr/bin/python
                 hashbang = "/usr/bin/python"
+            elif self.python:
+                hashbang = self.python
             else:
                 hashbang = os.path.realpath(sys.executable)
             standalone = self.standalone
@@ -706,6 +711,7 @@ Options:
       --link-exec        symlink the executable instead of copying it
       --standalone       build a standalone application, which is fully
                          independent of a Python installation
+      --python=FILE      Python to use in #! line in stead of current Python
       --lib=FILE         shared library or framework to be copied into
                          the bundle
   -x, --exclude=MODULE   exclude module (with --standalone)
@@ -732,7 +738,7 @@ def main(builder=None):
         "mainprogram=", "creator=", "nib=", "plist=", "link",
         "link-exec", "help", "verbose", "quiet", "argv", "standalone",
         "exclude=", "include=", "package=", "strip", "iconfile=",
-        "lib=")
+        "lib=", "python=")
 
     try:
         options, args = getopt.getopt(sys.argv[1:], shortopts, longopts)
@@ -780,6 +786,8 @@ def main(builder=None):
             builder.verbosity -= 1
         elif opt == '--standalone':
             builder.standalone = 1
+        elif opt == '--python':
+            builder.python = arg
         elif opt in ('-x', '--exclude'):
             builder.excludeModules.append(arg)
         elif opt in ('-i', '--include'):
index 64a3d5eb95b8428e73f53c77fe4b4340b28f8383..e954854b819a1adce242c16a4d5779fbcafb726e 100644 (file)
@@ -53,8 +53,8 @@ def buildapplet():
                        buildtools.process(template, filename, dstfilename, 1)
        else:
                
-               SHORTOPTS = "o:r:ne:v?"
-               LONGOPTS=("output=", "resource=", "noargv", "extra=", "verbose", "help")
+               SHORTOPTS = "o:r:ne:v?P"
+               LONGOPTS=("output=", "resource=", "noargv", "extra=", "verbose", "help", "python=")
                try:
                        options, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
                except getopt.error:
@@ -78,6 +78,11 @@ def buildapplet():
                                if ':' in arg:
                                        arg = arg.split(':')
                                extras.append(arg)
+                       elif opt in ('-P', '--python'):
+                               # This is a very dirty trick. We set sys.executable
+                               # so that bundlebuilder will use this in the #! line
+                               # for the applet bootstrap.
+                               sys.executable = arg
                        elif opt in ('-v', '--verbose'):
                                verbose = Verbose()
                        elif opt in ('-?', '--help'):