जैसा कि slhck द्वारा सुझाया गया है, मैंने एक स्टैंडअलोन AppleScript बनाया है जो इस कार्य को पूरा करता है, फिर इसे .app के रूप में AppleScript उपयोगिता में सहेजा है। यह वही करता है जो मैं चाहता हूं।
नीचे, स्क्रिप्ट ढूंढें। यह जाँचता है कि क्या SafariForWebKitDevelopment चल रहा है, टर्मिनल को स्क्रिप्ट को चलाने के लिए इसे लॉन्च करने के लिए कह रहा है यदि आवश्यक हो। (यह स्वचालित रूप से एक नई विंडो बनाता है, और मैं अपनी डिफ़ॉल्ट टर्मिनल नई विंडो सेटिंग्स को एक विंडो को बंद करने के लिए सेट करता हूं जब इसकी प्रक्रिया बाहर निकलती है।) फिर यह उस प्रक्रिया को शीर्ष विंडो बनाता है।
मैं एक जंगली बकरी का पीछा करने की कोशिश कर रहा था कि कैसे सफारीफोरवेबिटव्यूडेलमेंट के रूप में एक ही समय में चल रहे नियमित सफारी के मामले को संभालना है, और आखिरकार समाधान में आया जो आप कोड में देखते हैं, अनुप्रयोगों के बजाय प्रक्रियाओं के साथ काम करना।
tell application "System Events"
-- Only launch development Safari if it isn't already running
if not (exists process "SafariForWebKitDevelopment") then
tell application "Terminal"
do script "run-safari; exit"
activate
end tell
end if
-- Max number of iterations of checking for process before
-- we give up and exit the script (guards against errors in
-- launching SafariForWebKitDevelopment, where the process
-- would never exist, and this would be an infinite loop)
set num_checks to 100
-- Wait until dev Safari has launched
repeat until (exists process "SafariForWebKitDevelopment")
delay 0.1
set num_checks to num_checks - 1
if num_checks < 0 then
return
end if
end repeat
-- Set dev Safari to have focus
-- 'tell application "Safari" to activate' doesn't work because AppleScript
-- has no way of discerning between multiple processes from the same .app
-- bundle, so we can't be sure if we're talking to
-- SafariForWebKitDevelopment, or an already-running normal Safari
set frontmost of (process "SafariForWebKitDevelopment") to true
end tell
.scpt
बस इसे डबल-क्लिक कर सकते हैं। आप इसे एक ऑटोमेकर एप्लिकेशन के अंदर भी लपेट सकते हैं। आपके पास अब तक क्या स्क्रिप्ट है?