mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			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 |