mirror of
https://github.com/ngoduykhanh/wireguard-ui
synced 2024-06-11 02:12:25 +02:00
28 lines
919 B
Bash
28 lines
919 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
config="/etc/wireguard/wg0.conf"
|
||
|
old_config="/etc/wireguard/wg0.conf.old"
|
||
|
|
||
|
if [ ! -f $old_config ]; then
|
||
|
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||
|
echo "No old config found, restarting wireguard (wg-quick)"
|
||
|
wg-quick down wg0
|
||
|
systemctl restart wg-quick@wg0.service
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
difference=$(diff <(awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2) <(cat $old_config))
|
||
|
|
||
|
if [ -n "$difference" ]; then
|
||
|
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||
|
echo "Changes to interface detected, restarting wireguard (wg-quick)"
|
||
|
wg-quick down wg0
|
||
|
systemctl restart wg-quick@wg0.service
|
||
|
exit 0
|
||
|
else
|
||
|
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||
|
echo "No changes to interface detected, restarting wireguard (wg syncconf)"
|
||
|
wg syncconf wg0 <(wg-quick strip wg0)
|
||
|
exit 0
|
||
|
fi
|