Mercurial > cpython-lru_cache-weakref
annotate PC/make8x3.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 | fcd82a01507d |
| children | 52e3b63f2dca |
| rev | line source |
|---|---|
|
3846
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 #! /usr/local/bin/python |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 # This program reads all *.py and test/*.py in "libDir", and |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 # copies those files with illegal DOS names to libDir/dos_8x3. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 # Names are illegal if they are longer than 8x3 chars or if they |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 # contain uppercase chars. It also tests for name collisions. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 # You must first create the directory libDir/dos_8x3 yourself. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 # You should remove all files in dos_8x3 if you run it again. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 # CHANGE libDir TO THE CORRECT DIRECTORY. RM dos_8x3/* FIRST. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 import sys, os, regex, string |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 libDir = "./Lib" # Location of Python Lib |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 def make8x3(): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 reg_uppercase = regex.compile("[A-Z]") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 collisions = {} # See if all names are unique in first 8 chars. |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 destDir = os.path.join(libDir, "dos_8x3") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 if not os.path.isdir(destDir): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 print "Please create the directory", destDir, "first." |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 err() |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 while 1: |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 ans = raw_input("Ok to copy to " + destDir + " [yn]? ") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 if not ans: |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 continue |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 elif ans[0] == "n": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 err() |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 elif ans[0] == "y": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 break |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 for dirname in libDir, os.path.join(libDir, "test"): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 for filename in os.listdir(dirname): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 if filename[-3:] == ".py": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 name = filename[0:-3] |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 if len(name) > 8 or reg_uppercase.search(name) >= 0: |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 shortName = string.lower(name[0:8]) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 if collisions.has_key(shortName): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 print "Name not unique in first 8 chars:", collisions[shortName], name |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 else: |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 collisions[shortName] = name |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 fin = open(os.path.join(dirname, filename), "r") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 dest = os.path.join(destDir, shortName + ".py") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 fout = open(dest, "w") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 fout.write(fin.read()) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 fin.close() |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 fout.close() |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 os.chmod(dest, 0644) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 elif filename == "." or filename == "..": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 continue |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 elif filename[-4:] == ".pyc": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 continue |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 elif filename == "Makefile": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 continue |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 else: |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 parts = string.splitfields(filename, ".") |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 if len(parts) > 2 or \ |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 len(parts[0]) > 8 or \ |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 reg_uppercase.search(filename) >= 0 or \ |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 (len(parts) > 1 and len(parts[1]) > 3): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 print "Illegal DOS name", os.path.join(dirname, filename) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 sys.exit(0) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 def err(): |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 print "No files copied." |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 sys.exit(1) |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 if __name__ == "__main__": |
|
fcd82a01507d
New versions of almost all files.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 make8x3() |
