Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
config=${PRODUCT_VAMP_CONFIG:-/etc/product-vamp/vamp.json}
|
||||
ssid=${PRODUCT_VAMP_AP_SSID:-Vamp Control}
|
||||
passphrase=${PRODUCT_VAMP_AP_PASSPHRASE:-vamp-control}
|
||||
interface=${PRODUCT_VAMP_AP_INTERFACE:-wlan0}
|
||||
cidr=${PRODUCT_VAMP_ZERO_CIDR:-192.168.42.1/24}
|
||||
connection=${PRODUCT_VAMP_AP_CONNECTION:-product-vamp-control}
|
||||
|
||||
configure_connection() {
|
||||
nmcli connection modify "$connection" \
|
||||
connection.interface-name "$interface" \
|
||||
802-11-wireless.mode ap \
|
||||
802-11-wireless.band bg \
|
||||
802-11-wireless.channel 6 \
|
||||
802-11-wireless.ssid "$ssid" \
|
||||
802-11-wireless-security.key-mgmt wpa-psk \
|
||||
802-11-wireless-security.proto rsn \
|
||||
802-11-wireless-security.pairwise ccmp \
|
||||
802-11-wireless-security.group ccmp \
|
||||
802-11-wireless-security.pmf 1 \
|
||||
802-11-wireless-security.psk "$passphrase" \
|
||||
ipv4.method shared \
|
||||
ipv4.addresses "$cidr" \
|
||||
ipv6.method ignore \
|
||||
connection.autoconnect yes
|
||||
}
|
||||
|
||||
if [ -r "$config" ]; then
|
||||
ssid=$(python3 -c 'import json,sys; data=json.load(open(sys.argv[1])); print(data.get("control",{}).get("ap_ssid","Vamp Control"))' "$config")
|
||||
passphrase=$(python3 -c 'import json,sys; data=json.load(open(sys.argv[1])); print(data.get("control",{}).get("ap_passphrase","vamp-control"))' "$config")
|
||||
interface=$(python3 -c 'import json,sys; data=json.load(open(sys.argv[1])); print(data.get("control",{}).get("ap_interface","wlan0"))' "$config")
|
||||
cidr=$(python3 -c 'import json,sys; data=json.load(open(sys.argv[1])); print(data.get("control",{}).get("zero_cidr","192.168.42.1/24"))' "$config")
|
||||
fi
|
||||
|
||||
if nmcli -t -f NAME connection show | grep -Fxq "$connection"; then
|
||||
configure_connection
|
||||
else
|
||||
nmcli connection add type wifi ifname "$interface" con-name "$connection" autoconnect yes ssid "$ssid"
|
||||
configure_connection
|
||||
fi
|
||||
|
||||
nmcli connection up "$connection"
|
||||
Reference in New Issue
Block a user