| """ ***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 EasyDialogs |
| 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) |
| |
| |
| pathname = EasyDialogs.AskFolder(message="Please locate the Python home directory") |
| if pathname: |
| walk(pathname) |
| sys.exit(1) # so we see the results |