Mercurial > cpython-lru_cache-weakref
view Mac/scripts/ConfigurePython.py @ 17004:b7b048da1673 legacy-trunk
macostools.copy() now has an optional forcetype flag, which sets the filetype. This is used by various tools to set the type to APPL when copying interpreter template files (Atmp filetype).
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Tue, 06 Mar 2001 22:46:25 +0000 |
| parents | 5902b5794a17 |
| children | 6bdf563c763b |
line wrap: on
line source
# This python script creates Finder aliases for all the # dynamically-loaded modules that "live in" in a single # shared library. # # This is sort-of a merger between Jack's MkPluginAliases # and Guido's mkaliases. # # Jack Jansen, CWI, August 1996 import sys import os import macfs import MacOS import gestalt import string import Res SPLASH_COPYCORE=512 SPLASH_COPYCARBON=513 SPLASH_COPYCLASSIC=514 SPLASH_BUILDAPPLETS=515 ALERT_NOCORE=516 ALERT_NONBOOT=517 ALERT_NONBOOT_COPY=1 ALERT_NONBOOT_ALIAS=2 APPLET_LIST=[ (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs", None), (":Mac:scripts:BuildApplet.py", "BuildApplet", None), (":Mac:scripts:BuildApplication.py", "BuildApplication", None), ## (":Mac:scripts:ConfigurePython.py", "ConfigurePython", None), ## (":Mac:scripts:ConfigurePython.py", "ConfigurePythonCarbon", "PythonInterpreterCarbon"), ## (":Mac:scripts:ConfigurePython.py", "ConfigurePythonClassic", "PythonInterpreterClassic"), (":Mac:Tools:IDE:PythonIDE.py", "Python IDE", None), (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave", None), (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet", None), ] def getextensiondirfile(fname): import macfs import MACFS try: vrefnum, dirid = macfs.FindFolder(MACFS.kOnSystemDisk, MACFS.kExtensionFolderType, 0) fss = macfs.FSSpec((vrefnum, dirid, fname)) except macfs.error: return None return fss.as_pathname() def mkcorealias(src, altsrc): import string import macostools version = string.split(sys.version)[0] dst = getextensiondirfile(src+ ' ' + version) if not dst: return 0 if not os.path.exists(os.path.join(sys.exec_prefix, src)): if not os.path.exists(os.path.join(sys.exec_prefix, altsrc)): return 0 src = altsrc try: os.unlink(dst) except os.error: pass do_copy = 0 if macfs.FSSpec(sys.exec_prefix).as_tuple()[0] != -1: # XXXX try: import Dlg rv = Dlg.CautionAlert(ALERT_NONBOOT, None) if rv == ALERT_NONBOOT_COPY: do_copy = 1 except ImportError: pass if do_copy: macostools.copy(os.path.join(sys.exec_prefix, src), dst) else: macostools.mkalias(os.path.join(sys.exec_prefix, src), dst) return 1 # Copied from fullbuild, should probably go to buildtools def buildapplet(top, dummy, list): """Create python applets""" import buildtools for src, dst, tmpl in list: template = buildtools.findtemplate(tmpl) if src[-3:] != '.py': raise 'Should end in .py', src base = os.path.basename(src) src = os.path.join(top, src) dst = os.path.join(top, dst) try: os.unlink(dst) except os.error: pass try: buildtools.process(template, src, dst, 1) except buildtools.BuildError, arg: print '**', dst, arg def buildcopy(top, dummy, list): import macostools for src, dst in list: src = os.path.join(top, src) dst = os.path.join(top, dst) macostools.copy(src, dst, forcetype="APPL") def main(): verbose = 0 try: h = Res.GetResource('DLOG', SPLASH_COPYCORE) del h except Res.Error: verbose = 1 print "Not running as applet: verbose on" os.chdir(sys.prefix) sys.path.append('::Mac:Lib') import macostools # Create the PythonCore alias(es) MacOS.splash(SPLASH_COPYCORE) if verbose: print "Copying PythonCore..." n = 0 n = n + mkcorealias('PythonCore', 'PythonCore') n = n + mkcorealias('PythonCoreCarbon', 'PythonCoreCarbon') if n == 0: import Dlg Dlg.CautionAlert(ALERT_NOCORE, None) if verbose: print "Warning: PythonCore not copied to Extensions folder" if sys.argv[0][-7:] == 'Classic': do_classic = 1 elif sys.argv[0][-6:] == 'Carbon': do_classic = 0 else: print "I don't know the sys.argv[0] function", sys.argv[0] if verbose: print "Configure classic or carbon - ", rv = string.strip(sys.stdin.readline()) while rv and rv != "classic" and rv != "carbon": print "Configure classic or carbon - ", rv = string.strip(sys.stdin.readline()) if rv == "classic": do_classic = 1 elif rv == "carbon": do_classic = 0 else: return else: sys.exit(1) if do_classic: MacOS.splash(SPLASH_COPYCLASSIC) buildcopy(sys.prefix, None, [("PythonInterpreterClassic", "PythonInterpreter")]) else: MacOS.splash(SPLASH_COPYCARBON) buildcopy(sys.prefix, None, [("PythonInterpreterCarbon", "PythonInterpreter")]) MacOS.splash(SPLASH_BUILDAPPLETS) buildapplet(sys.prefix, None, APPLET_LIST) if __name__ == '__main__': main() MacOS.splash()
