2021-05-29 17:08:57 +02:00
#!/usr/bin/env bash
set -euo pipefail
if [ $# -eq 0 ] ; then
echo "Please supply one file"
$( exit 1) ; echo " $? "
elif [ $# -ge 2 ] ; then
echo "Please only give one argument"
$( exit 1) ; echo " $? "
fi
cd " $HOME "
file = " $1 "
parent = " $( dirname " $file " ) "
extract = " ${ parent } /vpnconfigs "
patched = " ${ file %.* } -patched.zip "
cd " $parent "
mkdir -p " ${ parent } /vpnconfigs "
unzip " $file " -d " $extract "
readarray -d '' conffiles < <( find " $extract " -name "*\.conf" -print0)
for file in " ${ conffiles [@] } " ; do
if grep "PostUp" " $file " & >/dev/null; then
echo " Skipping $file "
else
echo " Patching $file "
2021-07-07 15:53:25 +02:00
# NOTE route while being connected into my lan
2021-06-11 13:28:49 +02:00
awk 'NR==5{print "PostUp = ip route add 192.168.1.0/24 via 172.16.52.1 metric 10"}NR==5{print "PreDown = ip route del 192.168.1.0/24"}1' " $file " > " ${ file } .tmp "
2021-07-07 15:53:25 +02:00
mv " ${ file } .tmp " " $file "
# NOTE only one PreDown line is required as we are using a specific table for this
2021-06-11 13:28:49 +02:00
# TODO tables do not work as intended
#awk 'NR==5{print "PostUp = ip route add 192.168.1.0/24 via 192.168.86.1 metric 10 table 7"}NR==5{print "PreDown = ip route flush table 7"}1' "$file" > "${file}.tmp"
2021-07-07 15:53:25 +02:00
# NOTE adds a dns to all configs
2021-07-07 15:53:58 +02:00
awk 'NR==5{print "DNS = 172.16.16.1"}1' " $file " > " ${ file } .tmp "
2021-06-11 13:28:49 +02:00
mv " ${ file } .tmp " " $file "
# wifi
#awk 'NR==6{print "PostUp = ip route add 192.168.1.0/24 via 172.16.52.1 metric 20 table 7"}1' "$file" > "${file}.tmp"
2021-07-07 15:53:25 +02:00
#mv "${file}.tmp" "$file"
2021-05-29 17:08:57 +02:00
fi
done
zip -r -9 " $patched " "vpnconfigs"
rm -rf " $extract "