parent
ba5efedb11
commit
1a70ad0c63
4 changed files with 21 additions and 86 deletions
|
|
@ -1,81 +0,0 @@
|
|||
#!/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',
|
||||
ssid,
|
||||
)
|
||||
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
|
||||
|
|
@ -227,9 +227,23 @@ function update_live_env() {
|
|||
fi
|
||||
|
||||
# WiFi
|
||||
# TODO
|
||||
#cp "$ROOT_DIR/setup/linux/known_networks" "$PROFILE_DIR/airootfs/root/known_networks"
|
||||
#echo "add-known-networks --user=$username" >> "$PROFILE_DIR/airootfs/root/customize_airootfs.sh"
|
||||
IFS_BAK="${IFS}"
|
||||
IFS=$'\n'
|
||||
mkdir -p "$PROFILE_DIR/airootfs/var/lib/iwd"
|
||||
for line in $(<"$ROOT_DIR/setup/linux/known_networks"); do
|
||||
if [[ "${line:0:1}" == "#" ]]; then
|
||||
# Skip comments
|
||||
continue
|
||||
fi
|
||||
w_name="${line%%:::*}"
|
||||
w_pass="${line##*:::}"
|
||||
w_pass="$(wpa_passphrase "${w_name}" "${w_pass}" \
|
||||
| grep -E 'psk=[0-9a-z]+' \
|
||||
| sed -r 's/\s+psk=//')"
|
||||
echo "[Security]" > "$PROFILE_DIR/airootfs/var/lib/iwd/${w_name}.psk"
|
||||
echo "PreSharedKey=${w_pass}" >> "$PROFILE_DIR/airootfs/var/lib/iwd/${w_name}.psk"
|
||||
done
|
||||
IFS="${IFS_BAK}"
|
||||
}
|
||||
|
||||
function update_repo() {
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
#Put WiFi network info here
|
||||
#'WiFi SSID': 'WiFi Password'
|
||||
# Put known WiFi networks in the form:
|
||||
#SSID-5G:::Password
|
||||
#SSID-2G:::hunter2
|
||||
|
|
|
|||
|
|
@ -31,3 +31,4 @@ startup-notification
|
|||
subversion
|
||||
syslinux
|
||||
tigervnc
|
||||
wpa_supplicant
|
||||
|
|
|
|||
Loading…
Reference in a new issue