mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
8b0383dd20
- add mobile date network devices and configuration - add client configuration via udev - add GUI under networking tab - add scripts to handle mobile data devices
50 lines
1.5 KiB
Bash
50 lines
1.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# parameters: up or down
|
|
# current client from getClients.sh
|
|
#
|
|
# requires: getClients.sh, onoff_huawei_hilink.sh in same path
|
|
# ifconfig, ifup, ifdown, systemd-cat
|
|
#
|
|
#
|
|
# zbchristian 2020
|
|
|
|
path=`dirname $0`
|
|
clients=$($path/getClients.sh simple)
|
|
|
|
if [[ -z $clients ]] || [[ $(echo $clients| grep -oP '(?<="clients": )\d') == 0 ]]; then echo "$0 : No client found"|systemd-cat; exit; fi
|
|
|
|
devs=( $(echo $clients | grep -oP '(?<="name": ")\w*(?=")') )
|
|
types=( $(echo $clients | grep -oP '(?<="type": )\d') )
|
|
|
|
# find the device with the max type number
|
|
imax=0
|
|
type=0
|
|
for i in "${!devs[@]}"; do
|
|
if [[ ${types[$i]} > $type ]]; then imax=$i; type=${types[$i]}; fi
|
|
done
|
|
device=${devs[$imax]}
|
|
|
|
echo "$0: try to set $device $1" | systemd-cat
|
|
|
|
connected=`ifconfig -a | grep -i $device -A 1 | grep -oP "(?<=inet )([0-9]{1,3}\.){3}[0-9]{1,3}"`
|
|
|
|
if [ -z "$connected" ] && [[ $1 == "up" ]]; then
|
|
if [[ $type == 3 ]]; then ip link set $device up; fi
|
|
if [[ $type == 5 ]]; then ifup $device; fi
|
|
fi
|
|
if [[ ! -z "$connected" ]] && [[ $1 == "down" ]]; then
|
|
if [[ $type == 3 ]]; then ip link set $device down; fi
|
|
if [[ $type == 5 ]]; then ifdown $device; fi
|
|
fi
|
|
if [[ $type == 4 ]]; then
|
|
ipadd=$(echo $connected | grep -oP "([0-9]{1,3}\.){2}[0-9]{1,3}")".1" # get ip address of the Hilink API
|
|
mode=0
|
|
if [[ $1 == "up" ]]; then mode=1; fi
|
|
if [[ -f /etc/raspap/networking/mobiledata.ini ]]; then
|
|
pin=$(cat /etc/raspap/networking/mobiledata.ini | sed -rn 's/pin = ([0-9]*)$/\1/p' )
|
|
fi
|
|
$path/onoff_huawei_hilink.sh -c $mode -h $ipadd -p $pin
|
|
fi
|
|
|