annotate PC/make8x3.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents 52e3b63f2dca
children 0df015905100
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5250
52e3b63f2dca use /usr/bin/env
Guido van Rossum <guido@python.org>
parents: 3846
diff changeset
1 #! /usr/bin/env python
3846
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()