| 
									
										
										
										
											1995-08-09 15:16:58 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # 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 | 
					
						
							| 
									
										
										
										
											1996-09-15 22:13:59 +00:00
										 |  |  | import macostools | 
					
						
							| 
									
										
										
										
											1995-08-09 15:16:58 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | list = [ | 
					
						
							| 
									
										
										
										
											1996-02-21 15:36:26 +00:00
										 |  |  | 	('.py', 'Pyth', 'TEXT'), | 
					
						
							|  |  |  | 	('.pyc', 'Pyth', 'PYC '), | 
					
						
							| 
									
										
										
										
											1995-10-09 23:18:21 +00:00
										 |  |  | 	('.c', 'CWIE', 'TEXT'), | 
					
						
							|  |  |  | 	('.h', 'CWIE', 'TEXT'), | 
					
						
							|  |  |  | 	('.as', 'ToyS', 'TEXT'), | 
					
						
							| 
									
										
										
										
											1996-02-21 15:36:26 +00:00
										 |  |  | 	('.hqx', 'BnHq', 'TEXT'), | 
					
						
							|  |  |  | 	('.cmif', 'CMIF', 'TEXT'), | 
					
						
							| 
									
										
										
										
											1996-03-18 13:33:15 +00:00
										 |  |  | 	('.cmc', 'CMIF', 'CMC '), | 
					
						
							|  |  |  | 	('.aiff', 'SCPL', 'AIFF'), | 
					
						
							|  |  |  | 	('.mpg', 'mMPG', 'MPEG'), | 
					
						
							| 
									
										
										
										
											1995-08-09 15:16:58 +00:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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) | 
					
						
							| 
									
										
										
										
											1996-09-15 22:13:59 +00:00
										 |  |  | 						macostools.touched(fs) | 
					
						
							| 
									
										
										
										
											1995-08-09 15:16:58 +00:00
										 |  |  | 						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): | 
					
						
							| 
									
										
										
										
											1995-08-14 12:21:12 +00:00
										 |  |  | 	fss, ok = macfs.GetDirectory('Folder to search:') | 
					
						
							| 
									
										
										
										
											1995-08-09 15:16:58 +00:00
										 |  |  | 	if not ok: | 
					
						
							|  |  |  | 		sys.exit(0) | 
					
						
							|  |  |  | 	walktree(fss.as_pathname(), change) | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  | 	run(1) | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	 |