Control your terminal windows in iTerm with Ruby -- great for automation scripting!
lib | ||
spec | ||
.gitignore | ||
iterm_window.gemspec | ||
LICENSE | ||
README.rdoc |
= iTermWindow <em>Developed March 17, 2008 by Chris Powers</em> The ItermWindow class models an iTerm terminal window and allows for full control via Ruby commands. Under the hood, this class is a wrapper of iTerm's Applescript scripting API. Methods are used to generate Applescript code which is run as an <tt>osascript</tt> command when the ItermWindow initialization block is closed. ItermWindow::Tab models a tab (session) in an iTerm terminal window and allows for it to be controlled by Ruby. These tabs can be created with either the ItermWindow#open_bookmark method or the ItermWindow#open_tab method. Each tab is given a name (symbol) by which it can be accessed later in the code using the tab name as an ItermWindow method. == EXAMPLE - Open a new iTerm window, cd to a project and open it in TextMate require 'rubygems' require 'chrisjpowers-iterm_window' ItermWindow.open do open_tab :my_tab do write "cd ~/projects/my_project/trunk" write "mate ./" end end == EXAMPLE - Use the current iTerm window, cd to a project and open in TextMate, launch the server and the console and title them ItermWindow.current do open_tab :project_dir do write "cd ~/projects/my_project/trunk" write "mate ./" set_title "MyProject Dir" end open_tab :server do write "cd ~/projects/my_project/trunk" write "script/server -p 3005" set_title "MyProject Server" end open_tab :console do write "cd ~/projects/my_project/trunk" write "script/console" set_title "MyProject Console" end end == EXAMPLE - Same thing, but use bookmarks that were made for the server and console. Also, switch focus back to project dir. ItermWindow.current do open_tab :project_dir do write "cd ~/projects/my_project/trunk" write "mate ./" end open_bookmark :server, 'MyProject Server' open_bookmark :console, 'MyProject Console' project_dir.select == EXAMPLE - Arbitrarily open two tabs, switch between them and run methods/blocks with Tab#select method and Tab#write directly ItermWindow.open do open_tab :first_tab open_tab :second_tab first_tab.select do write 'cd ~/projects' write 'ls' end second_tab.write "echo 'hello there!'" first_tab.select # brings first tab back to focus end