From a8afd793e0dc035024be29aee6de6beafc66c3a8 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Thu, 11 Apr 2019 20:55:40 -0700 Subject: [PATCH] Added setup-wifi script * This will replace the connect_to_network() function --- .bin/Scripts/setup-wifi | 72 +++++++++++++++++++++++++++++++++++++ .linux_items/known_networks | 2 ++ 2 files changed, 74 insertions(+) create mode 100644 .bin/Scripts/setup-wifi create mode 100644 .linux_items/known_networks diff --git a/.bin/Scripts/setup-wifi b/.bin/Scripts/setup-wifi new file mode 100644 index 00000000..6047c438 --- /dev/null +++ b/.bin/Scripts/setup-wifi @@ -0,0 +1,72 @@ +#!/bin/env python3 +# +## Convert saved WiFi connections for NetworkManager + +import os +import re +import uuid + +KNOWN_NETWORKS = '/root/known_networks' +TEMPLATE = '''[connection] +id={ssid} +uuid={uuid} +type=wifi +permissions=user:{user}:; + +[wifi] +mac-address-blacklist= +mode=infrastructure +ssid={ssid} + +[wifi-security] +auth-alg=open +key-mgmt=wpa-psk +psk={password} + +[ipv4] +dns-search= +method=auto + +[ipv6] +addr-gen-mode=stable-privacy +dns-search= +method=auto +''' + +def get_user_name(): + """Get real user name, returns str.""" + user = None + if 'SUDO_USER' in os.environ: + user = os.environ.get('SUDO_USER') + else: + user = os.environ.get('USER') + + return user + +if __name__ == '__main__': + known_networks = {} + #try: + with open('/root/known_networks', 'r') as f: + for line in f.readlines(): + r = re.search(r"^'(.*)':\s+'(.*)'", line.strip()) + if r: + known_networks[r.group(1)] = r.group(2) + for ssid, password in known_networks.items(): + out_path = '{}/{}.nmconnection'.format( + '/etc/NetworkManager/system-connections', + password, + ) + if not os.path.exists(out_path): + with open(out_path, 'w') as f: + f.write(TEMPLATE.format( + user=get_user_name(), + ssid=ssid, + password=password, + uuid=uuid.uuid4(), + )) + os.chmod(out_path, 0o600) + #except: + # # Meh + # pass + +# vim: sts=2 sw=2 ts=2 diff --git a/.linux_items/known_networks b/.linux_items/known_networks new file mode 100644 index 00000000..7f110889 --- /dev/null +++ b/.linux_items/known_networks @@ -0,0 +1,2 @@ +#Put WiFi network info here +#'WiFi SSID': 'WiFi Password'