33 lines
933 B
Python
33 lines
933 B
Python
# Demonstration of invoking osascript (using AppleScript) from JMRI on Mac OS X.
|
|
#
|
|
# Author: Bob Jacobsen, Copyright 2008, 2016
|
|
# Part of the JMRI distribution
|
|
|
|
import jmri
|
|
|
|
# osascript is an external command, so we need to use Popen to call it and PIPE
|
|
# to get its input and output
|
|
from subprocess import Popen, PIPE
|
|
|
|
# define a method for running osascript
|
|
# takes two arguments:
|
|
# a script (required)
|
|
# an array of arguments to pass to the script (optional)
|
|
def osascript(scpt, args=[]):
|
|
# create an osascript process
|
|
p = Popen(['osascript', '-'] + args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
|
# execute the script
|
|
stdout, stderr = p.communicate(scpt)
|
|
# return its output
|
|
return stdout
|
|
|
|
# sample - note extensive use of quoting and \ characters to get lines right
|
|
script = \
|
|
"tell application \"Finder\"\n" + \
|
|
" make new folder at desktop\n" + \
|
|
"end tell\n"
|
|
|
|
# Execute the sample
|
|
osascript(script)
|
|
|