diff options
Diffstat (limited to 'machammer/network.py')
-rw-r--r-- | machammer/network.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/machammer/network.py b/machammer/network.py index 2c4dcfc..e1a9058 100644 --- a/machammer/network.py +++ b/machammer/network.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- """Network-related machammer functions.""" +from .process import kill from .functions import call, check_output from .system_profiler import SystemProfile +NETWORKSETUP = '/usr/sbin/networksetup' + def get_ports(type='Ethernet'): """Return all devices of type (Ethernet, AirPort)""" @@ -15,7 +18,12 @@ def set_wifi_power(on=True): """Set AirPort power to on (True) or off (False)""" state = 'on' if on else 'off' for i in get_ports('AirPort'): - call('/usr/sbin/networksetup', '-setairportpower', i['interface'], state) + call(NETWORKSETUP, '-setairportpower', i['interface'], state) + + +def disable_wifi(port='en1'): + call(NETWORKSETUP, '-setairportpower', port, 'off') + call(NETWORKSETUP, '-setnetworkserviceenabled', 'Wi-Fi', 'off') def get_wifi_power(): @@ -23,7 +31,7 @@ def get_wifi_power(): results = [] for i in get_ports('AirPort'): iface = i['interface'] - r = check_output('/usr/sbin/networksetup', '-getairportpower', iface) + r = check_output(NETWORKSETUP, '-getairportpower', iface) results.append(r.split(': ')[1]) return 'On' in results @@ -59,4 +67,4 @@ def get_primary(port=None): def flush_dns(): """Flush the DNS cache.""" - call('/usr/bin/killall', '-HUP', 'mDNSResponder') + kill('mDNSResponder', 'HUP') |