mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			139 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			139 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | """Utility routines depending on the finder.""" | ||
|  | 
 | ||
|  | import Finder_7_0_Suite | ||
|  | import aetools | ||
|  | import MacOS | ||
|  | import sys | ||
|  | import macfs | ||
|  | 
 | ||
|  | SIGNATURE='MACS' | ||
|  | 
 | ||
|  | class Finder(aetools.TalkTo, Finder_7_0_Suite.Finder_7_0_Suite): | ||
|  | 	pass | ||
|  | 	 | ||
|  | _finder_talker = None | ||
|  | 
 | ||
|  | def _getfinder(): | ||
|  | 	global _finder_talker | ||
|  | 	if not _finder_talker: | ||
|  | 		_finder_talker = Finder(SIGNATURE) | ||
|  | 	return _finder_talker | ||
|  | 	 | ||
|  | def launch(file): | ||
|  | 	"""Open a file thru the finder. Specify file by name or fsspec""" | ||
|  | 	finder = _getfinder() | ||
|  | 	fss = macfs.FSSpec(file) | ||
|  | 	vRefNum, parID, name = fss.as_tuple() | ||
|  | 	dir_fss = macfs.FSSpec((vRefNum, parID, '')) | ||
|  | 	file_alias = fss.NewAlias() | ||
|  | 	dir_alias = dir_fss.NewAlias() | ||
|  | 	return finder.open(dir_alias, items=[file_alias]) | ||
|  | 	 | ||
|  | def Print(file): | ||
|  | 	"""Print a file thru the finder. Specify file by name or fsspec""" | ||
|  | 	finder = _getfinder() | ||
|  | 	fss = macfs.FSSpec(file) | ||
|  | 	vRefNum, parID, name = fss.as_tuple() | ||
|  | 	dir_fss = macfs.FSSpec((vRefNum, parID, '')) | ||
|  | 	file_alias = fss.NewAlias() | ||
|  | 	dir_alias = dir_fss.NewAlias() | ||
|  | 	return finder._print(dir_alias, items=[file_alias]) | ||
|  | 	 | ||
|  | def copy(src, dstdir): | ||
|  | 	"""Copy a file to a folder""" | ||
|  | 	finder = _getfinder() | ||
|  | 	src_fss = macfs.FSSpec(src) | ||
|  | 	dst_fss = macfs.FSSpec(dstdir) | ||
|  | 	src_alias = src_fss.NewAlias() | ||
|  | 	dst_alias = dst_fss.NewAlias() | ||
|  | 	return finder.copy_to(dst_alias, _from=[src_alias]) | ||
|  | 
 | ||
|  | def move(src, dstdir): | ||
|  | 	"""Move a file to a folder""" | ||
|  | 	finder = _getfinder() | ||
|  | 	src_fss = macfs.FSSpec(src) | ||
|  | 	dst_fss = macfs.FSSpec(dstdir) | ||
|  | 	src_alias = src_fss.NewAlias() | ||
|  | 	dst_alias = dst_fss.NewAlias() | ||
|  | 	return finder.move_to(dst_alias, _from=[src_alias]) | ||
|  | 	 | ||
|  | def sleep(): | ||
|  | 	"""Put the mac to sleep""" | ||
|  | 	finder = _getfinder() | ||
|  | 	finder.sleep() | ||
|  | 	 | ||
|  | def shutdown(): | ||
|  | 	"""Shut the mac down""" | ||
|  | 	finder = _getfinder() | ||
|  | 	finder.shut_down() | ||
|  | 	 | ||
|  | def restart(): | ||
|  | 	"""Restart the mac""" | ||
|  | 	finder = _getfinder() | ||
|  | 	finder.restart() | ||
|  | 	 | ||
|  | 
 | ||
|  | def main(): | ||
|  | 	print 'Testing launch...' | ||
|  | 	fss, ok = macfs.PromptGetFile('File to launch:') | ||
|  | 	if ok: | ||
|  | 		result = launch(fss) | ||
|  | 		if result: | ||
|  | 			print 'Result: ', result | ||
|  | 		print 'Press return-', | ||
|  | 		sys.stdin.readline() | ||
|  | 	print 'Testing print...' | ||
|  | 	fss, ok = macfs.PromptGetFile('File to print:') | ||
|  | 	if ok: | ||
|  | 		result = Print(fss) | ||
|  | 		if result: | ||
|  | 			print 'Result: ', result | ||
|  | 		print 'Press return-', | ||
|  | 		sys.stdin.readline() | ||
|  | 	print 'Testing copy...' | ||
|  | 	fss, ok = macfs.PromptGetFile('File to copy:') | ||
|  | 	if ok: | ||
|  | 		dfss, ok = macfs.GetDirectory() | ||
|  | 		if ok: | ||
|  | 			result = copy(fss, dfss) | ||
|  | 			if result: | ||
|  | 				print 'Result:', result | ||
|  | 			print 'Press return-', | ||
|  | 			sys.stdin.readline() | ||
|  | 	print 'Testing move...' | ||
|  | 	fss, ok = macfs.PromptGetFile('File to move:') | ||
|  | 	if ok: | ||
|  | 		dfss, ok = macfs.GetDirectory() | ||
|  | 		if ok: | ||
|  | 			result = move(fss, dfss) | ||
|  | 			if result: | ||
|  | 				print 'Result:', result | ||
|  | 			print 'Press return-', | ||
|  | 			sys.stdin.readline() | ||
|  | 	import EasyDialogs | ||
|  | 	print 'Testing sleep...' | ||
|  | 	if EasyDialogs.AskYesNoCancel('Sleep?') > 0: | ||
|  | 		result = sleep() | ||
|  | 		if result: | ||
|  | 			print 'Result:', result | ||
|  | 		print 'Press return-', | ||
|  | 		sys.stdin.readline() | ||
|  | 	print 'Testing shutdown...' | ||
|  | 	if EasyDialogs.AskYesNoCancel('Shut down?') > 0: | ||
|  | 		result = shutdown() | ||
|  | 		if result: | ||
|  | 			print 'Result:', result | ||
|  | 		print 'Press return-', | ||
|  | 		sys.stdin.readline() | ||
|  | 	print 'Testing restart...' | ||
|  | 	if EasyDialogs.AskYesNoCancel('Restart?') > 0: | ||
|  | 		result = restart() | ||
|  | 		if result: | ||
|  | 			print 'Result:', result | ||
|  | 		print 'Press return-', | ||
|  | 		sys.stdin.readline() | ||
|  | 		 | ||
|  | if __name__ == '__main__': | ||
|  | 	main() | ||
|  | 	 |