Skip to content

Instantly share code, notes, and snippets.

@marcinczenko
Forked from eric-hu/Open iterm tab here
Last active December 19, 2015 17:02
Show Gist options
  • Save marcinczenko/241c6826111871ac6d35 to your computer and use it in GitHub Desktop.
Save marcinczenko/241c6826111871ac6d35 to your computer and use it in GitHub Desktop.
Apple script to open an iterm2 tab from right-clicking on a file or folder in Finder.To use:(1) Open Automator(2) Create a new service(3) Change "Service receives selected" drop downs to "Files or folders" in "Finder"(4) Select "Run applescript" from the sidebar, then paste this script in and save
-- Adapted from these sources:
-- http://peterdowns.com/posts/open-iterm-finder-service.html
-- https://gist.github.com/cowboy/905546
-- https://gist.github.com/eric-hu/5846890
-- Modified to work with files as well, cd-ing to their container folder
-- Modified to do an ls -l if the selected item in Finder is a file so that you get the name of the file waiting for you in the terminal.
on run {input, parameters}
tell application "Finder"
set my_file to first item of input
set filetype to (kind of (info for my_file))
-- Treats OS X applications as files. To treat them as folders, integrate this SO answer:
-- http://stackoverflow.com/a/6881524/640517
if filetype is "Folder" or filetype is "Volume" then
set dir_path to quoted form of (POSIX path of my_file)
else
set dir_path to quoted form of (POSIX path of (container of my_file as string))
end if
end tell
CD_to(dir_path, my_file)
end run
on CD_to(theDir, theFile)
tell application "iTerm"
activate
try
set t to the last terminal
on error
set t to (make new terminal)
end try
tell t
launch session "Default Session"
tell the last session
write text "cd " & theDir
set filetype to (kind of (info for theFile))
if filetype is not "Folder" and filetype is not "Volume" then
write text "ls -l " & (POSIX path of theFile)
end if
end tell
end tell
end tell
end CD_to
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment