Autostart per ambiente di lavoro

by Michele

Di che cosa avete bisogno per lavorare al meglio? di un buon ambiente di lavoro ovviamente! Un ambiente desktop con tutti i programmi pronti per essere utilizzati. In sostanza vogliamo solo iniziare a scrivere codice ;-)

C’è l’esigenza di eliminare un’operazione sempre uguale a se stessa facendola eseguire ad uno script AppleScript. Il mio ambiente di lavoro per i progetti Rails è composto da due finestre di iTerm con il server WebBrick e tail su development.log. Per scrivere il codice utilizzo TextMate e per testare le pagine una finestra di Safari.
AppleScript permette di scriptare applicazioni sotto Mac OS X con una semplicità estrema. L’unico grande ostacolo è nella sintassi che mi rimane ancora abbastanza oscura. Con un semplice script sono riuscito a far aprire i programmi e le finestre giuste e posizionarle nei punti più comodi del desktop.

Il codice sorgente di questo script è il seguente:

tell application "iTerm"
	activate
	terminate the first session of the first terminal

	set termserver to (make new terminal)
	tell termserver
		set number of columns to 100
		set number of rows to 30

		set sessionserver to (make new session at the end of sessions)
		tell sessionserver
			set name to "Webbrick"
			exec command "/bin/tcsh"
			write text "cd /Rails/casaparrina"
			write text "script/server"
		end tell
	end tell

	set termlog to (make new terminal)
	tell termlog
		set number of columns to 100
		set number of rows to 40

		set sessionlog to (make new session at the end of sessions)
		tell sessionlog
			set name to "Log"
			exec command "/bin/tcsh"
			write text "cd /Rails/casaparrina/log"
			write text "tail -f development.log"
		end tell
	end tell

end tell

tell application "TextMate"
	activate
end tell

tell application "Safari"
	activate
	delay 4
	set URL of document 1 to "http://localhost:3000"
end tell

Ogni volta che voglio apportare una modifica, anche piccola, non sarò più costretto a lanciare finestre shell e lanciare comandi. Faccio doppio click sullo script e aspetto qualche secondo. Ho realizzato un breve screencast per far capire di cosa si tratta e di quanto sia utile:

Screencast del funzionamento dello script

Lo screencast è stato realizzato con pyvnc2swf con una risoluzione video di 1024×768 quindi alcune parti risultano tagliate. In condizioni normali infatti l’ambiente di lavoro è preparato per lavorare con una risoluzione di 1440×960.