mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Utility routines depending on the finder."""
 | 
						|
 | 
						|
import Finder
 | 
						|
import AppleEvents
 | 
						|
import aetools
 | 
						|
import MacOS
 | 
						|
import sys
 | 
						|
import macfs
 | 
						|
 | 
						|
_finder_talker = None
 | 
						|
 | 
						|
def _getfinder():
 | 
						|
	global _finder_talker
 | 
						|
	if not _finder_talker:
 | 
						|
		_finder_talker = Finder.Finder()
 | 
						|
	_finder_talker.send_flags = ( _finder_talker.send_flags | 
 | 
						|
		AppleEvents.kAECanInteract | AppleEvents.kAECanSwitchLayer)
 | 
						|
	return _finder_talker
 | 
						|
	
 | 
						|
def launch(file):
 | 
						|
	"""Open a file thru the finder. Specify file by name or fsspec"""
 | 
						|
	finder = _getfinder()
 | 
						|
	fss = macfs.FSSpec(file)
 | 
						|
	return finder.open(fss)
 | 
						|
	
 | 
						|
def Print(file):
 | 
						|
	"""Print a file thru the finder. Specify file by name or fsspec"""
 | 
						|
	finder = _getfinder()
 | 
						|
	fss = macfs.FSSpec(file)
 | 
						|
	return finder._print(fss)
 | 
						|
	
 | 
						|
def copy(src, dstdir):
 | 
						|
	"""Copy a file to a folder"""
 | 
						|
	finder = _getfinder()
 | 
						|
	src_fss = macfs.FSSpec(src)
 | 
						|
	dst_fss = macfs.FSSpec(dstdir)
 | 
						|
	return finder.duplicate(src_fss, to=dst_fss)
 | 
						|
 | 
						|
def move(src, dstdir):
 | 
						|
	"""Move a file to a folder"""
 | 
						|
	finder = _getfinder()
 | 
						|
	src_fss = macfs.FSSpec(src)
 | 
						|
	dst_fss = macfs.FSSpec(dstdir)
 | 
						|
	return finder.move(src_fss, to=dst_fss)
 | 
						|
	
 | 
						|
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()
 | 
						|
	
 |