62 lines
1.7 KiB
Bash
Executable file
62 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
|
|
function ifstatus(){
|
|
is_online=false
|
|
is_wireless=false
|
|
is_ethernet=false
|
|
is_vpn=false
|
|
is_proton=false
|
|
is_proton_sc=false
|
|
is_homevpn=false
|
|
is_homevpn_full=false
|
|
|
|
if nmcli -g TYPE connection show --active | grep -q "wireless";then
|
|
is_wireless='true'
|
|
fi
|
|
if nmcli -g TYPE connection show --active | grep -q "ethernet";then
|
|
is_ethernet='true'
|
|
fi
|
|
vpn_cons=$(nmcli -g TYPE,NAME connection show --active | grep -e "vpn" -e "wireguard")
|
|
|
|
# echo "${vpn_cons//$'\n'/;}"
|
|
case "${vpn_cons//$'\n'/;}" in
|
|
*ProtonVPN|*ProtonVPN\;*)
|
|
is_proton='true'
|
|
;;&
|
|
*ProtonVPN-SC|*ProtonVPN-SC\;*)
|
|
is_proton_sc='true'
|
|
;;&
|
|
*HomeVPN|*HomeVPN\;*)
|
|
is_homevpn='true'
|
|
;;&
|
|
*HomeVPN-Full|*HomeVPN-Full\;*)
|
|
is_homevpn_full='true'
|
|
;;&
|
|
*ProtonVPN*|*ProtonVPN-SC*|*HomeVPN*|*HomeVPN-Full*)
|
|
is_vpn='true'
|
|
;;
|
|
esac
|
|
# if grep -qe "ProtonVPN$" <<<${vpn_cons};then
|
|
# is_proton='true'
|
|
# fi
|
|
# if grep -qe "ProtonVPN-SC$" <<<${vpn_cons};then
|
|
# is_proton_sc='true'
|
|
# fi
|
|
# if grep -qe "HomeVPN$" <<<${vpn_cons};then
|
|
# is_homevpn='true'
|
|
# fi
|
|
# if grep -qe "HomeVPN-Full$" <<<${vpn_cons};then
|
|
# is_homevpn_full='true'
|
|
# fi
|
|
echo $(jq -n --arg online "${is_online}" --arg wifi "${is_wireless}" --arg wired "${is_ethernet}" --arg vpn "${is_vpn}" --arg proton "${is_proton}" --arg proton_sc "${is_proton_sc}" --arg homevpn "${is_homevpn}" --arg homevpn_full "${is_homevpn_full}" '{online: $online, wifi: $wifi, wired: $wired, vpn: $vpn, proton: $proton, proton_sc: $proton_sc, homevpn: $homevpn, homevpn_full: $homevpn_full}')
|
|
}
|
|
|
|
ifstatus
|
|
|
|
ip monitor address | {
|
|
while read -r event; do
|
|
# echo hi ${event};
|
|
ifstatus
|
|
done;
|
|
}
|