old_contents: #! /usr/local/bin/python
  
  # This program reads all *.py and test/*.py in "libDir", and
  # copies those files with illegal DOS names to libDir/dos_8x3.
  # Names are illegal if they are longer than 8x3 chars or if they
  # contain uppercase chars.  It also tests for name collisions.
  # You must first create the directory libDir/dos_8x3 yourself.
  # You should remove all files in dos_8x3 if you run it again.
  
  # CHANGE libDir TO THE CORRECT DIRECTORY.  RM dos_8x3/* FIRST.
  
  import sys, os, regex, string
  
  libDir = "./Lib"	# Location of Python Lib
  
  def make8x3():
    reg_uppercase = regex.compile("[A-Z]")
    collisions = {}	# See if all names are unique in first 8 chars.
    destDir = os.path.join(libDir, "dos_8x3")
    if not os.path.isdir(destDir):
      print "Please create the directory", destDir, "first."
      err()
    while 1:
      ans = raw_input("Ok to copy to " + destDir + " [yn]? ")
      if not ans:
        continue
      elif ans[0] == "n":
        err()
      elif ans[0] == "y":
        break
    for dirname in libDir, os.path.join(libDir, "test"):
      for filename in os.listdir(dirname):
        if filename[-3:] == ".py":
          name = filename[0:-3]
          if len(name) > 8 or reg_uppercase.search(name) >= 0:
            shortName = string.lower(name[0:8])
            if collisions.has_key(shortName):
              print "Name not unique in first 8 chars:", collisions[shortName], name
            else:
              collisions[shortName] = name
              fin = open(os.path.join(dirname, filename), "r")
              dest = os.path.join(destDir, shortName + ".py")
              fout = open(dest, "w")
              fout.write(fin.read())
              fin.close()
              fout.close()
              os.chmod(dest, 0644)
        elif filename == "." or filename == "..":
          continue
        elif filename[-4:] == ".pyc":
          continue
        elif filename == "Makefile":
          continue
        else:
          parts = string.splitfields(filename, ".")
          if len(parts) > 2 or \
             len(parts[0]) > 8 or \
             reg_uppercase.search(filename) >= 0 or \
             (len(parts) > 1 and len(parts[1]) > 3):
                   print "Illegal DOS name", os.path.join(dirname, filename)
    sys.exit(0)
  def err():
    print "No files copied."
    sys.exit(1)
              
  
  if __name__ == "__main__":
    make8x3()
  
new_contents: #! /usr/bin/env python
  
  # This program reads all *.py and test/*.py in "libDir", and
  # copies those files with illegal DOS names to libDir/dos_8x3.
  # Names are illegal if they are longer than 8x3 chars or if they
  # contain uppercase chars.  It also tests for name collisions.
  # You must first create the directory libDir/dos_8x3 yourself.
  # You should remove all files in dos_8x3 if you run it again.
  
  # CHANGE libDir TO THE CORRECT DIRECTORY.  RM dos_8x3/* FIRST.
  
  import sys, os, regex, string
  
  libDir = "./Lib"	# Location of Python Lib
  
  def make8x3():
    reg_uppercase = regex.compile("[A-Z]")
    collisions = {}	# See if all names are unique in first 8 chars.
    destDir = os.path.join(libDir, "dos_8x3")
    if not os.path.isdir(destDir):
      print "Please create the directory", destDir, "first."
      err()
    while 1:
      ans = raw_input("Ok to copy to " + destDir + " [yn]? ")
      if not ans:
        continue
      elif ans[0] == "n":
        err()
      elif ans[0] == "y":
        break
    for dirname in libDir, os.path.join(libDir, "test"):
      for filename in os.listdir(dirname):
        if filename[-3:] == ".py":
          name = filename[0:-3]
          if len(name) > 8 or reg_uppercase.search(name) >= 0:
            shortName = string.lower(name[0:8])
            if collisions.has_key(shortName):
              print "Name not unique in first 8 chars:", collisions[shortName], name
            else:
              collisions[shortName] = name
              fin = open(os.path.join(dirname, filename), "r")
              dest = os.path.join(destDir, shortName + ".py")
              fout = open(dest, "w")
              fout.write(fin.read())
              fin.close()
              fout.close()
              os.chmod(dest, 0644)
        elif filename == "." or filename == "..":
          continue
        elif filename[-4:] == ".pyc":
          continue
        elif filename == "Makefile":
          continue
        else:
          parts = string.splitfields(filename, ".")
          if len(parts) > 2 or \
             len(parts[0]) > 8 or \
             reg_uppercase.search(filename) >= 0 or \
             (len(parts) > 1 and len(parts[1]) > 3):
                   print "Illegal DOS name", os.path.join(dirname, filename)
    sys.exit(0)
  def err():
    print "No files copied."
    sys.exit(1)
              
  
  if __name__ == "__main__":
    make8x3()
  
subject: use /usr/bin/env