Convenience routines: wrappers around some of the scriptable finder
functionality.
This commit is contained in:
parent
924ca855da
commit
0585d41198
|
@ -0,0 +1,138 @@
|
|||
"""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()
|
||||
|
Loading…
Reference in New Issue