summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
authorJust van Rossum <just@lettererror.com>1999-02-07 16:36:22 (GMT)
committerJust van Rossum <just@lettererror.com>1999-02-07 16:36:22 (GMT)
commit7f1653c0e5e082cbf284c907913990ed2c37f116 (patch)
treea3b5de98ad93cf0978d6d9dbc6fbdf985e50772a /Mac
parente058189040dcaf951c34d66f99eeb7e4ee91af6a (diff)
downloadcpython-7f1653c0e5e082cbf284c907913990ed2c37f116.zip
cpython-7f1653c0e5e082cbf284c907913990ed2c37f116.tar.gz
cpython-7f1653c0e5e082cbf284c907913990ed2c37f116.tar.bz2
new dangerous script: it removes all apps (except sys.executable), shared libs, (x)SYM files and xxx Data folders (in case xxx.prj exists) -- jvr
Diffstat (limited to 'Mac')
-rw-r--r--Mac/scripts/makeclean.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/Mac/scripts/makeclean.py b/Mac/scripts/makeclean.py
new file mode 100644
index 0000000..005ea02
--- /dev/null
+++ b/Mac/scripts/makeclean.py
@@ -0,0 +1,59 @@
+""" ***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