- Magnus_
- Medlem ●
- Kristianstad
- 2008-07-18 23:08
Hej.
Jag sitter och försöker lära mig applescript. Jag har kommit en bra bit på vägen men sedan har jag fastnat... Kanske någon som kan hjälpa mig. Jag har en macbook pro och ansluter till olika nätverk således vill jag att mitt script skall ansluta mot olika portar med ssh beroende på vilket nät jag sitter på. När jag kör scriptet så startat thunderbird och den ansluter med ssh till de servrar jag skall ansluta mot det som jag inte har klurat ut är att när jag avslutar thunderbird så stängs inte mina sessioner ner (terminalen) utan den måste jag då växla till och logga ut manuellt...
Ytterligare en fråga efter att applescript går in i en sub-rutin (on configure) skall den inte hoppa ur den och fortsätta där den slutade innan rutinen??? Jag var nämligen tvungen att lägga Tell Application "Thunderbird" i början annars startade den inte...
Finns det någon lösning på mitt problem på ett relativt lätt sätt??
Bifogar mitt script här modifiera det gärna och kom med kommentarer. Som sagt var så är jag nybörjare på detta...
set AirportName to do shell script ¬
"system_profiler SPAirPortDataType | grep -i curr | awk '{print $4}'"
--"system_profiler SPAirPortDataType|awk -F\": \" '/Current Wireless Network/{print $2}'"
tell application "Thunderbird"
activate
end tell
if AirportName is "AirPort" then
set AirportName to ""
set val to "AirPort"
set menytext to "Du är inte ansluten"
global menytext
meny(AirportName, menytext)
end if
if AirportName is "a3m" then
set val to "Hemma"
set menytext to "Du är ansluten till "
global menytext
configure(val)
end if
if AirportName is "other" then
set val to "other"
set menytext to "Du är ansluten"
global menytext
configure(val)
else
set menytext to "Du är ansluten till "
meny(AirportName, menytext)
end if
on configure(val)
if val is "other" then
global kommando
set window_name to "SSH..."
set kommando to "ssh tunnel 1"
ssh(kommando)
set kommando to "ssh tunnel 2"
ssh(kommando)
else if val is "Hemma" then
global kommando
set window_name to "SSH..."
set kommando to "ssh tunnel 3"
ssh(kommando)
set kommando to "ssh tunnel 4"
ssh(kommando)
else if val is "Hotell" then
global kommando
set window_name to "SSH..."
set kommando to "ssh tunnel 5"
ssh(kommando)
set kommando to "ssh tunnel 6"
ssh(kommando)
else if val is "other1" then
global kommando
set window_name to "SSH..."
set kommando to "ssh tunnel 7"
ssh(kommando)
set kommando to "ssh tunnel 8"
ssh(kommando)
end if
error number -128
end configure
on meny(AirportName, menytext)
global val
set Listan to {"other", "Hemma", "Hotell", "other1"}
set dialogResult to choose from list Listan with prompt "Auto detect were not able to set" with title menytext & AirportName OK button name "Anslut" cancel button name ¬
"Avbryt"
if dialogResult is false then
error number -128
end if
if the dialogResult is not true then
set val to item 1 of the dialogResult
end if
configure(val)
end meny
on ssh(kommando)
tell application "iTerm"
--activate
if (count of terminal) = 0 then make new terminal
end tell
tell application "iTerm" to tell first terminal
launch session "Default"
tell last session
write text kommando
set name to kommando
set foreground color to "black"
set background color to {41000, 49000, 55000}
end tell
end tell
end ssh