60 lines
1.1 KiB
Python
60 lines
1.1 KiB
Python
|
""" ***DANGEROUS***
|
||
|
script to remove
|
||
|
all results of a
|
||
|
build process.
|
||
|
|
||
|
***Don't***
|
||
|
run this if you are
|
||
|
***not***
|
||
|
building Python
|
||
|
from the source
|
||
|
!!!
|
||
|
"""
|
||
|
|
||
|
import macfs
|
||
|
import os
|
||
|
import sys
|
||
|
import re
|
||
|
|
||
|
sweepfiletypes = [
|
||
|
'APPL', # applications
|
||
|
'Atmp', # applet template
|
||
|
'shlb', # shared libs
|
||
|
'MPSY', # SYM and xSYM files
|
||
|
'PYC ', # .pyc files
|
||
|
]
|
||
|
|
||
|
sweepfolderre = re.compile(r"(.*) Data$")
|
||
|
|
||
|
|
||
|
def remove(top):
|
||
|
if os.path.isdir(top):
|
||
|
for name in os.listdir(top):
|
||
|
path = os.path.join(top, name)
|
||
|
remove(path)
|
||
|
os.remove(top)
|
||
|
|
||
|
|
||
|
def walk(top):
|
||
|
if os.path.isdir(top):
|
||
|
m = sweepfolderre.match(top)
|
||
|
if m and os.path.exists(m.group(1) + ".prj"):
|
||
|
print "removing folder:", top
|
||
|
remove(top)
|
||
|
else:
|
||
|
for name in os.listdir(top):
|
||
|
path = os.path.join(top, name)
|
||
|
walk(path)
|
||
|
else:
|
||
|
fss = macfs.FSSpec(top)
|
||
|
cr, tp = fss.GetCreatorType()
|
||
|
if tp in sweepfiletypes and top <> sys.executable:
|
||
|
print "removing file: ", top
|
||
|
remove(top)
|
||
|
|
||
|
|
||
|
fss, ok = macfs.GetDirectory("Please locate the Python home directory")
|
||
|
if ok:
|
||
|
walk(fss.as_pathname())
|
||
|
sys.exit(1) # so we see the results
|