Skip to content

Instantly share code, notes, and snippets.

@clicube
Created January 8, 2013 03:58
Show Gist options
  • Save clicube/4481040 to your computer and use it in GitHub Desktop.
Save clicube/4481040 to your computer and use it in GitHub Desktop.
Access networksetup info on OSX from Ruby
# coding: utf-8
module NetworkSetup
def self.network_services
result = `networksetup -listallnetworkservices`.each_line.map{|l|l.strip}
result.shift
return result
end
def self.get_proxy(type,service)
array = `networksetup -get#{type}proxy #{service}`
.each_line.map{|l|
l.split(':').map!{|v|v.strip}
}
.flatten!
result = Hash[*array]
result["Enabled"] = result["Enabled"] == "Yes" ? true:false
result["Port"] = result["Port"].to_i
result["Authenticated Proxy Enabled"] = result["Authenticated Proxy Enabled"].to_i == 1 ? true:false
return result
end
private_class_method :get_proxy
def self.web_proxy(service)
get_proxy("web",service)
end
def self.secureweb_proxy(service)
get_proxy("secureweb",service)
end
def self.ftp_proxy(service)
get_proxy("ftp",service)
end
end
if $0 == __FILE__
puts "NetworkSetup.network_services:"
p NetworkSetup.network_services
puts "NetworkSetup.web_proxy:"
p NetworkSetup.web_proxy("Wi-Fi")
puts "NetworkSetup.secureweb_proxy:"
p NetworkSetup.secureweb_proxy("Wi-Fi")
puts "NetworkSetup.ftp_proxy:"
p NetworkSetup.ftp_proxy("Wi-Fi")
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment