Files
khodowany 09656a9d60
ci / checks (push) Successful in 48m34s
Package
2026-09-30 19:46:37 -05:00

45 lines
1.8 KiB
Bash
Executable File

#!/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"