-
-
Save zzot/332920 to your computer and use it in GitHub Desktop.
Actually, you can use the standard UNIX interpreter syntax directly with osascript; just mark the file as executable and you're set.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/osascript | |
-- invoke with $ osascript ensure_mate.scpt /path/to/project | |
-- or create a wrapper script that looks like this: | |
-- #!/bin/sh | |
-- osascript ~/bin/ensure_mate.scpt $@ & | |
-- Created 2010 Dan MacKinlay and hereby released into the public domain | |
on run (wantedPath) | |
set wantedPathFound to false | |
global wantedDoc | |
tell application "TextMate" | |
set allDocs to documents | |
repeat with doc in allDocs | |
if path of doc exists then -- beware unsaved files! | |
set docPath to path of doc | |
-- "starts with" because we assume we are opening a folder | |
if docPath starts with wantedPath then | |
set wantedPathFound to true | |
set wantedDoc to doc | |
end if | |
end if | |
end repeat | |
if wantedPathFound then | |
-- this branch should bring the folder window to the front if already open | |
-- doesn't work - window has no document, for some reason | |
-- see http://lists.macromates.com/textmate/2009-March/028352.html | |
local currDoc | |
repeat with wind in (get every window) | |
if document of wind exists then | |
set currDoc to (get first document of wind) | |
if currDoc is wantedDoc then | |
set index of wind to 1 | |
end if | |
end if | |
end repeat | |
else | |
-- elsewise just open it | |
open wantedPath | |
end if | |
end tell | |
end run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment