This commit is contained in:
Arminas 2024-01-13 17:21:43 -05:00 committed by GitHub
commit 3a69630ce3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View file

@ -124,7 +124,7 @@ After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service
ExecStart=/bin/bash /DIR-TO-RESTART-FILE/restart-wg.sh
[Install]
RequiredBy=wgui.path

27
restart-wg.sh Normal file
View file

@ -0,0 +1,27 @@
#!/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