annotate Mac/scripts/PackLibDir.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents 9ac1e0d56674
children 42b2f1936254
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 #
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2 # Turn a pyc file into a resource file containing it in 'PYC ' resource form
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 from Res import *
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 import Res
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 from Resources import *
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6 import os
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 import macfs
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 import sys
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
9 import py_resource
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 error = 'mkpycresourcefile.error'
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 def mkpycresourcefile(src, dst):
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 """Copy pyc file/dir src to resource file dst."""
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 if not os.path.isdir(src) and src[-4:] <> '.pyc':
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 raise error, 'I can only handle .pyc files or directories'
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
18 fsid = py_resource.create(dst)
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 if os.path.isdir(src):
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
20 handlesubdir(src)
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21 else:
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
22 id, name = py_resource.frompycfile(src)
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
23 print 'Wrote %d: %s %s'%(id, name, src)
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
24 CloseResFile(fsid)
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
26 def handlesubdir(srcdir):
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 """Recursively scan a directory for pyc files and copy to resources"""
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 src = os.listdir(srcdir)
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 for file in src:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 file = os.path.join(srcdir, file)
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 if os.path.isdir(file):
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
32 handlesubdir(file)
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 elif file[-4:] == '.pyc':
3657
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
34 id, name = py_resource.frompycfile(file)
9ac1e0d56674 Use py_resource module
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
35 print 'Wrote %d: %s %s'%(id, name, file)
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 if __name__ == '__main__':
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38 args = sys.argv[1:]
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 if not args:
2979
7eea9b426802 Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents: 2873
diff changeset
40 ifss, ok = macfs.GetDirectory('Select root of tree to pack:')
7eea9b426802 Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents: 2873
diff changeset
41 if not ok:
7eea9b426802 Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents: 2873
diff changeset
42 sys.exit(0)
7eea9b426802 Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents: 2873
diff changeset
43 args = [ifss.as_pathname()]
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 for ifn in args:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45 ofss, ok = macfs.StandardPutFile('Output for '+os.path.split(ifn)[1])
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46 if not ok:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47 sys.exit(0)
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
48 mkpycresourcefile(ifn, ofss.as_pathname())
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49 sys.exit(1) # So we can see something...