#!/bin/env python3 # ## Convert saved WiFi connections for NetworkManager import os import re import sys 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 user name, returns str.""" user = None # Get running user if 'SUDO_USER' in os.environ: user = os.environ.get('SUDO_USER') else: user = os.environ.get('USER') # Check if user manually specified for a in sys.argv: a = a.strip().lower() if a.startswith('--user='): user = a.replace('--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