1 # This python script creates Finder aliases for all the
2 # dynamically-loaded modules that "live in" in a single
5 # This is sort-of a merger between Jack's MkPluginAliases
6 # and Guido's mkaliases.
8 # Jack Jansen, CWI, August 1996
23 ("AE.ppc.slb", "toolboxmodules.ppc.slb"),
24 ("Ctl.ppc.slb", "toolboxmodules.ppc.slb"),
25 ("Dlg.ppc.slb", "toolboxmodules.ppc.slb"),
26 ("Evt.ppc.slb", "toolboxmodules.ppc.slb"),
27 ("Fm.ppc.slb", "toolboxmodules.ppc.slb"),
28 ("Help.ppc.slb", "toolboxmodules.ppc.slb"),
29 ("Menu.ppc.slb", "toolboxmodules.ppc.slb"),
30 ("List.ppc.slb", "toolboxmodules.ppc.slb"),
31 ("Qd.ppc.slb", "toolboxmodules.ppc.slb"),
32 ("Res.ppc.slb", "toolboxmodules.ppc.slb"),
33 ("Scrap.ppc.slb", "toolboxmodules.ppc.slb"),
34 ("Snd.ppc.slb", "toolboxmodules.ppc.slb"),
35 ("Sndihooks.ppc.slb", "toolboxmodules.ppc.slb"),
36 ("TE.ppc.slb", "toolboxmodules.ppc.slb"),
37 ("Win.ppc.slb", "toolboxmodules.ppc.slb"),
39 ("Cm.ppc.slb", "qtmodules.ppc.slb"),
40 ("Qt.ppc.slb", "qtmodules.ppc.slb"),
42 ("imgcolormap.ppc.slb", "imgmodules.ppc.slb"),
43 ("imgformat.ppc.slb", "imgmodules.ppc.slb"),
44 ("imggif.ppc.slb", "imgmodules.ppc.slb"),
45 ("imgjpeg.ppc.slb", "imgmodules.ppc.slb"),
46 ("imgop.ppc.slb", "imgmodules.ppc.slb"),
47 ("imgpbm.ppc.slb", "imgmodules.ppc.slb"),
48 ("imgpgm.ppc.slb", "imgmodules.ppc.slb"),
49 ("imgppm.ppc.slb", "imgmodules.ppc.slb"),
50 ("imgtiff.ppc.slb", "imgmodules.ppc.slb"),
51 ("imgsgi.ppc.slb", "imgmodules.ppc.slb")
55 ("AE.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
56 ("Ctl.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
57 ("Dlg.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
58 ("Evt.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
59 ("Fm.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
60 ("Help.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
61 ("Menu.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
62 ("List.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
63 ("Qd.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
64 ("Res.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
65 ("Scrap.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
66 ("Snd.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
67 ("Sndihooks.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
68 ("TE.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
69 ("Win.CFM68K.slb", "toolboxmodules.CFM68K.slb"),
71 ("Cm.CFM68K.slb", "qtmodules.CFM68K.slb"),
72 ("Qt.CFM68K.slb", "qtmodules.CFM68K.slb"),
74 ("imgcolormap.CFM68K.slb", "imgmodules.CFM68K.slb"),
75 ("imgformat.CFM68K.slb", "imgmodules.CFM68K.slb"),
76 ("imggif.CFM68K.slb", "imgmodules.CFM68K.slb"),
77 ("imgjpeg.CFM68K.slb", "imgmodules.CFM68K.slb"),
78 ("imgop.CFM68K.slb", "imgmodules.CFM68K.slb"),
79 ("imgpbm.CFM68K.slb", "imgmodules.CFM68K.slb"),
80 ("imgpgm.CFM68K.slb", "imgmodules.CFM68K.slb"),
81 ("imgppm.CFM68K.slb", "imgmodules.CFM68K.slb"),
82 ("imgtiff.CFM68K.slb", "imgmodules.CFM68K.slb"),
83 ("imgsgi.CFM68K.slb", "imgmodules.CFM68K.slb")
86 def gotopluginfolder():
87 """Go to the plugin folder, assuming we are somewhere in the Python tree"""
90 while not os
.path
.isdir(":Plugins"):
93 if verbose
: print "current directory is", os
.getcwd()
95 def loadtoolboxmodules():
96 """Attempt to load the Res module"""
99 except ImportError, arg
:
103 if verbose
: print 'imported Res the standard way.'
106 # We cannot import it. First attempt to load the cfm68k version
109 dummy
= imp
.load_dynamic('Res', 'toolboxmodules.CFM68K.slb')
110 except ImportError, arg
:
114 if verbose
: print 'Loaded Res from toolboxmodules.CFM68K.slb.'
117 # Ok, try the ppc version
119 dummy
= imp
.load_dynamic('Res', 'toolboxmodules.ppc.slb')
120 except ImportError, arg
:
124 if verbose
: print 'Loaded Res from toolboxmodules.ppc.slb.'
128 print "I cannot import the Res module, nor load it from either of"
129 print "toolboxmodules shared libraries. The errors encountered were:"
130 print "import Res:", err1
131 print "load from toolboxmodules.CFM68K.slb:", err2
132 print "load from toolboxmodules.ppc.slb:", err3
135 def getextensiondirfile(fname
):
138 vrefnum
, dirid
= macfs
.FindFolder(MACFS
.kOnSystemDisk
, MACFS
.kExtensionFolderType
, 0)
139 fss
= macfs
.FSSpec((vrefnum
, dirid
, fname
))
140 return fss
.as_pathname()
142 def mkcorealias(src
, altsrc
):
145 version
= string
.split(sys
.version
)[0]
146 dst
= getextensiondirfile(src
+ ' ' + version
)
147 if not os
.path
.exists(src
):
148 if not os
.path
.exists(altsrc
):
149 if verbose
: print '*', src
, 'not found'
156 macostools
.mkalias(src
, dst
)
157 if verbose
: print ' ', dst
, '->', src
162 MacOS
.splash(SPLASH_LOCATE
)
167 sys
.path
.append('::Mac:Lib')
170 # Remove old .slb aliases and collect a list of .slb files
173 allfiles
= os
.listdir(':')
174 if verbose
: print 'Removing old aliases...'
177 finfo
= macfs
.FSSpec(f
).GetFInfo()
178 if finfo
.Flags
& 0x8000:
180 MacOS
.splash(SPLASH_REMOVE
)
182 if verbose
: print ' Removing', f
186 if verbose
: print ' Found', f
189 # Create the new PPC aliases.
191 if verbose
: print 'Creating PPC aliases...'
192 for dst
, src
in ppc_goals
:
195 MacOS
.splash(SPLASH_PPC
)
197 macostools
.mkalias(src
, dst
)
198 if verbose
: print ' ', dst
, '->', src
200 if verbose
: print '*', dst
, 'not created:', src
, 'not found'
203 # Create the CFM68K aliases.
205 if verbose
: print 'Creating CFM68K aliases...'
206 for dst
, src
in cfm68k_goals
:
209 MacOS
.splash(SPLASH_CFM68K
)
211 macostools
.mkalias(src
, dst
)
212 if verbose
: print ' ', dst
, '->', src
214 if verbose
: print '*', dst
, 'not created:', src
, 'not found'
217 # Create the PythonCore alias(es)
218 if verbose
: print 'Creating PythonCore aliases in Extensions folder...'
221 n
= n
+ mkcorealias('PythonCore', 'PythonCore')
222 n
= n
+ mkcorealias('PythonCorePPC', ':build.macppc.shared:PythonCorePPC')
223 n
= n
+ mkcorealias('PythonCoreCFM68K', ':build.mac68k.shared:PythonCoreCFM68K')
226 if os
.path
.exists(':Extensions:NumPy:macmkaliases.py'):
227 MacOS
.splash(SPLASH_NUMPY
)
228 os
.chdir(':Extensions:NumPy')
230 err
= macmkaliases
.main()
231 if verbose
and n
== 0:
234 if __name__
== '__main__':
235 if len(sys
.argv
) > 1 and sys
.argv
[1] == '-v':