Rob Orsini’s got a nice little shell script for opening iTerm with everything he needs for his app: a vim window or two, a dev server, the Rails console, and a final tab to tail the development logs.

Of course, I’m a TextMate man myself, and so a bit of tweaking this morning brought out my own version of it. The first tab opens the project in Textmate and puts your shell into the project root, all ready for running tests and specs (unless you’ve already caught the autotest bug); the second tab fires up Mongrel on port 3000; the third fires up the console; the fourth tails development.log . The changes in filenames/commands are mainly my personal environment, so tweak away. Hardly warrants a blogpost, really, but thought I’d share, because it’s really going to be useful in future. Requires iTerm, TextMate, and the mate command (which should be set up by default when you install TextMate).

#!/bin/sh

if [[ $# == 0 ]]; then
  PROJECT_DIR=$PWD
elif [[ $# == 1 && -d "$1" ]]; then
  PROJECT_DIR="$@"
else
  print "usage: railsterm.sh [rails project directory]"
  return 1
fi
    
osascript <<-eof
   tell application "iTerm"
 
     make new terminal
 
     tell the last terminal
 
       activate current session
 
       launch session "Default Session"
 
       tell the last session
           set name to "$PROJECT_DIR"
           write text "cd \"$PROJECT_DIR\""
 	      write text "mate .;"
           write text "clear; ls;"
       end tell
 		
       launch session "Default Session"
       tell the last session
           set name to "server"
           write text "cd \"$PROJECT_DIR\""
           write text "mongrel_rails start"
       end tell
 
       launch session "Default Session"
       tell the last session
           set name to "console"
           write text "cd \"$PROJECT_DIR\""
           write text "./script/console"
       end tell
 
       launch session "Default Session"
       tell the last session
         set name to "development log"
         write text "cd \"$PROJECT_DIR\""
         write text "cd log"
         write text "tail -f development.log"
       end tell
 
     end tell
   end tell
 eof
 

Don't forget to chmod +x the file if you want to make it executable.