The land of Shattered dreams

Welcome to the online revolution…

Alfred Ssh Plugin [Updated]

| Comments

I use Alfred (http://www.alfredapp.com/) to speed things up on my mac and it is a brilliant bit of software. I pay for the powerpack and have written a little bit of applescript to allow me to ssh to a server from the launcher.

I have it set up to so that “ssh server username” will connect to server as username. If you don’t put it a username it will default to “default”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
on alfred_script(q)
	set tmp to splitString(item 1 of q, " ")

	set server to item 1 of tmp

	if length of tmp is 2 then set login to item 2 of tmp
	if length of tmp is 1 then set login to "default"

	set command to "ssh " & server & " -l " & login

	tell application "Terminal"
		do script command
	end tell
end alfred_script

to splitString(aString, delimiter)
	set retVal to {}
	set prevDelimiter to AppleScript's text item delimiters
	set AppleScript's text item delimiters to {delimiter}
	set retVal to every text item of aString
	set AppleScript's text item delimiters to prevDelimiter
	return retVal
end splitString

Phil wrote a version that can handle ports as well. I’ve changed it slightly as something appears to have changed within Alfred which was causing it to ignore the username passed in.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
on alfred_script(q)
	set tmp to splitString(item 1 of q, " ")

	set server to item 1 of tmp

	(* Split at colon delimiter *)
	set server to splitString(server, ":")

	(* Does it contain a port? If not just roll with it. *)
	if length of server is 2 then
		set serverport to item 2 of server
		set serverip to item 1 of server
		set server to serverip & " -p " & serverport
	end if

	if length of tmp is 2 then set login to item 2 of tmp
	if length of tmp is 1 then set login to "default"

	set command to "ssh " & server & " -l " & login

	tell application "Terminal"
		do script command
	end tell
end alfred_script

Comments