How to exec command in iTerm 2 from applescript

applescriptiterm2

Trying to execute a command from applescript.

tell application "iTerm 2"
    make new terminal
    tell the current terminal
        activate current session
        launch session "Default Session"
        tell the last session
            write text "cd ~/Downloads; clear; pwd"
        end tell
    end tell
end tell

Referencing this question: How do I set up an AppleScript to open a new iTerm2 tab and change the directory?

This doesn't seem to work for me. In fact, neither the exec command or the write text commands seem to work – the text is placed on the command line, but the newline isn't added to actually execute it. My suspicion is that it's somehow writing the text before the terminal is ready for input…

Best Answer

I got this working in the end but it was after so much trial and error that I can't remember exactly what made it work. But I can tell you two useful things: 1) I downgraded to iTerm 1.0.0 and 2) here is the code.

on run {input, parameters}
    tell application "iTerm 2"
        activate
        if (count of terminals) = 0 then
            set t to (make new terminal)
        else
            set t to current terminal

        end if
        tell t
            set s to (make new session at the end of sessions)
            tell s
                exec command (("vim \"" & POSIX path of first item of input as text) & "\"")
            end tell
        end tell
    end tell
end run
Related Question