open a predefined VPN connection on Mac using ruby
Amazing, it seems that there is no simple way to open a predefined VPN connection with a terminal command. So after asking the search engine of my choice I found some applescript stuff to do this.
I have wrapped it in ruby such that I can use it now from my rake files.
class VpnOnMac
def self.open(service)
cmd=[]
cmd < < "osascript <<-EOF"
cmd << "tell application \"System Events\""
cmd << " tell current location of network preferences"
cmd << " set VPN to service \"#{service}\" -- your VPN name here"
cmd << " if exists VPN then connect VPN"
cmd << " repeat while (current configuration of VPN is not connected)"
cmd << " delay 1"
cmd << " end repeat"
cmd << " end tell"
cmd << "end tell"
cmd << "EOF"
cmd=cmd.join("\n")
system(cmd)
end
def self.close(service)
cmd=[]
cmd << "osascript <<-EOF"
cmd << "tell application \"System Events\""
cmd << " tell current location of network preferences"
cmd << " set VPN to service \"#{service}\" -- your VPN name here"
cmd << " if exists VPN then disconnect VPN"
cmd << " end tell"
cmd << "end tell"
cmd << "EOF"
cmd=cmd.join("\n")
system(cmd)
end
end
with this, you can open your service e.g. by
VpnOnMac::open("my Vpn")