51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
|
#
|
||
|
# Fixfiletypes - Set mac filetypes to something sensible,
|
||
|
# recursively down a directory tree.
|
||
|
#
|
||
|
# It will only touch extensions it feels pretty sure about.
|
||
|
# This script is useful after copying files from unix.
|
||
|
#
|
||
|
# Jack Jansen, CWI, 1995.
|
||
|
#
|
||
|
import os
|
||
|
import macfs
|
||
|
import sys
|
||
|
|
||
|
list = [
|
||
|
('.py', 'PYTH', 'TEXT'),
|
||
|
('.pyc', 'PYTH', 'PYC '),
|
||
|
('.c', 'MPCC', 'TEXT'),
|
||
|
('.h', 'MPCC', 'TEXT'),
|
||
|
('.as', 'TEXT', 'ToyS'),
|
||
|
('.hqx', 'TEXT', 'BnHq')
|
||
|
]
|
||
|
|
||
|
def walktree(name, change):
|
||
|
if os.path.isfile(name):
|
||
|
for ext, cr, tp in list:
|
||
|
if name[-len(ext):] == ext:
|
||
|
fs = macfs.FSSpec(name)
|
||
|
curcrtp = fs.GetCreatorType()
|
||
|
if curcrtp <> (cr, tp):
|
||
|
if change:
|
||
|
fs.SetCreatorType(cr, tp)
|
||
|
print 'Fixed ', name
|
||
|
else:
|
||
|
print 'Wrong', curcrtp, name
|
||
|
elif os.path.isdir(name):
|
||
|
print '->', name
|
||
|
files = os.listdir(name)
|
||
|
for f in files:
|
||
|
walktree(os.path.join(name, f), change)
|
||
|
|
||
|
def run(change):
|
||
|
fss, ok = macfs.GetDirectory()
|
||
|
if not ok:
|
||
|
sys.exit(0)
|
||
|
walktree(fss.as_pathname(), change)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
run(1)
|
||
|
|
||
|
|