diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1996-08-28 14:19:53 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1996-08-28 14:19:53 (GMT) |
commit | e3c90a4232c0d5259e3d82ab3871961473da5338 (patch) | |
tree | f40a8730c09b7bd0d5cc48d1a52f45220415e8d6 /Mac/scripts | |
parent | 86288976b63cbf1d178ea05962bb59630d71aca0 (diff) | |
download | cpython-e3c90a4232c0d5259e3d82ab3871961473da5338.zip cpython-e3c90a4232c0d5259e3d82ab3871961473da5338.tar.gz cpython-e3c90a4232c0d5259e3d82ab3871961473da5338.tar.bz2 |
Merged Guido's mkaliases and Jack's MkPluginAliases
Diffstat (limited to 'Mac/scripts')
-rw-r--r-- | Mac/scripts/ConfigurePython.py | 152 |
1 files changed, 82 insertions, 70 deletions
diff --git a/Mac/scripts/ConfigurePython.py b/Mac/scripts/ConfigurePython.py index d6bc49e..11b93dd 100644 --- a/Mac/scripts/ConfigurePython.py +++ b/Mac/scripts/ConfigurePython.py @@ -1,58 +1,15 @@ # This python script creates Finder aliases for all the # dynamically-loaded modules that "live in" in a single # shared library. -# It needs a fully functional non-dynamic python to work -# but you can run it in a shared python as long as you can point -# it to toolboxmodules.slb # -# Jack Jansen, CWI, August 1995 +# This is sort-of a merger between Jack's MkPluginAliases +# and Guido's mkaliases. +# +# Jack Jansen, CWI, August 1996 import sys - -def help(): - print""" -Try the following: -1. Remove any old "Python Preferences" files from the system folder. -2. Remove any old "PythonCore" or "PythonCoreCFM68K" files from the system folder. -3. Make sure this script, your interpreter and your PythonCore are all located in the - same folder. -4. Run this script again, by dropping it on your interpreter. - -If this fails try removing starting afresh from the distribution archive. -""" - sys.exit(1) - -try: - import os -except ImportError: - print """ -I cannot import the 'os' module, so something is wrong with sys.path -""" - help() - -try: - import Res -except ImportError: - import macfs - # - # Check that we are actually in the main python directory - # - fss, ok = macfs.StandardGetFile('Where are the toolbox modules?', 'shlb') - tblibname = fss.as_pathname() - try: - for wtd in ["Ctl", "Dlg", "Evt", "Qd", "Res", "Win"]: - imp.load_dynamic(wtd, tblibname) - except ImportError: - print """ -I cannot load the toolbox modules by hand. Are you sure you are -using a PowerPC mac? -""" - sys.exit(1) - - +import os import macfs -import EasyDialogs -import macostools ppc_goals = [ ("AE.ppc.slb", "toolboxmodules.ppc.slb"), @@ -103,42 +60,97 @@ cfm68k_goals = [ ("Qt.CFM68K.slb", "qtmodules.CFM68K.slb"), ] +def gotopluginfolder(): + """Go to the plugin folder, assuming we are somewhere in the Python tree""" + import os + + while not os.path.isdir(":Plugins"): + os.chdir("::") + os.chdir(":Plugins") + print "current directory is", os.getcwd() + +def loadtoolboxmodules(): + """Attempt to load the Res module""" + try: + import Res + except ImportError, arg: + err1 = arg + pass + else: + print 'imported Res the standard way.' + return + + # We cannot import it. First attempt to load the cfm68k version + import imp + try: + dummy = imp.load_dynamic('Res', 'toolboxmodules.CFM68K.slb') + except ImportError, arg: + err2 = arg + pass + else: + print 'Loaded Res from toolboxmodules.CFM68K.slb.' + return + + # Ok, try the ppc version + try: + dummy = imp.load_dynamic('Res', 'toolboxmodules.ppc.slb') + except ImportError, arg: + err3 = arg + pass + else: + print 'Loaded Res from toolboxmodules.ppc.slb.' + return + + # Tough luck.... + print "I cannot import the Res module, nor load it from either of" + print "toolboxmodules shared libraries. The errors encountered were:" + print "import Res:", err1 + print "load from toolboxmodules.CFM68K.slb:", err2 + print "load from toolboxmodules.ppc.slb:", err3 + sys.exit(1) + + def main(): - # Ask the user for the plugins directory - dir, ok = macfs.GetDirectory('Where is the PlugIns folder?') - if not ok: sys.exit(0) - os.chdir(dir.as_pathname()) + gotopluginfolder() + + loadtoolboxmodules() + import macostools + # Remove old .slb aliases and collect a list of .slb files - if EasyDialogs.AskYesNoCancel('Proceed with removing old aliases?') <= 0: - sys.exit(0) LibFiles = [] allfiles = os.listdir(':') + print 'Removing old aliases...' for f in allfiles: if f[-4:] == '.slb': finfo = macfs.FSSpec(f).GetFInfo() if finfo.Flags & 0x8000: + print ' Removing', f os.unlink(f) else: LibFiles.append(f) + print ' Found', f + print - print LibFiles - # Create the new aliases. - if EasyDialogs.AskYesNoCancel('Proceed with creating PPC aliases?') > 0: - for dst, src in ppc_goals: - if src in LibFiles: - macostools.mkalias(src, dst) - else: - EasyDialogs.Message(dst+' not created: '+src+' not found') - if EasyDialogs.AskYesNoCancel('Proceed with creating CFM68K aliases?') > 0: - for dst, src in cfm68k_goals: - if src in LibFiles: - macostools.mkalias(src, dst) - else: - EasyDialogs.Message(dst+' not created: '+src+' not found') - - EasyDialogs.Message('All done!') + # Create the new PPC aliases. + print 'Creating PPC aliases...' + for dst, src in ppc_goals: + if src in LibFiles: + macostools.mkalias(src, dst) + print ' ', dst, '->', src + else: + print '*', dst, 'not created:', src, 'not found' + print + + # Create the CFM68K aliases. + print 'Creating CFM68K aliases...' + for dst, src in cfm68k_goals: + if src in LibFiles: + macostools.mkalias(src, dst) + print ' ', dst, '->', src + else: + print '*', dst, 'not created:', src, 'not found' if __name__ == '__main__': main() |