How To Open A File In Subprocess On Mac Osx
Solution 1:
Try saving this as "EditOneAndQuit" and then do:
chmod +x EditOneAndQuit
Then start that from Python:
#!/bin/bash# Start textedit in background
open "$1" &
# Wait till textedit has zero documents openwhiletruedosleep 1
docs=`osascript -e 'tell application "textedit" to get documents'`
if [ -z "$docs" ]; then# Kill off poor old textedit
osascript -e 'tell application "textedit" to quit'exitfidone
Try it from the shell first, by creating a document and editing it:
ls > fred.txt
./OpenOneAndQuit fred.txt
you should see that the script, along with textedit, exits when you close the document by clicking the red button.
Solution 2:
Closing the file does not end the process, as you will see that the editor is still running at the top of the screen when you close the file.
Press "Cmd+Q" to exit the process.
As it seems you cannot get your users to differentiate between closing documents and closing applications, I can only suggest something VERY UGLY. Can you start another background process that uses Applescript to wait till "textedit" starts, then ask "textedit" for a list of the documents it has open. Sleep for a few seconds if there are some, then check again. When there are none, it could tell "textedit" to exit and exit itself too.
The Applescript to do this looks like this.
tell app "TextEdit"toget documents
You may need to use "osascript" to get Python to execute Applescript.
Post a Comment for "How To Open A File In Subprocess On Mac Osx"