48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
|
#!/bin/bash
|
||
|
# Simple script to update fastd peers from git upstream
|
||
|
# and only send HUP to fastd when changes happend.
|
||
|
|
||
|
# CONFIGURE THIS TO YOUR PEER DIRECTORY
|
||
|
FASTD_PEERS=/home/fastdform/keys
|
||
|
FASTD_BACKBONE=/etc/fastd/ffffng-mesh-vpn/backbone
|
||
|
|
||
|
# CONFIGURE THIS TO THE USER TO RUN THE GIT COMMANDS AS
|
||
|
USER=fastdform
|
||
|
|
||
|
function getCurrentVersion() {
|
||
|
# Get hash from latest revision
|
||
|
su -c "git log --format=format:%H -1" $USER
|
||
|
}
|
||
|
|
||
|
cd $FASTD_PEERS
|
||
|
|
||
|
# Get current version hash
|
||
|
GIT_REVISION=$(getCurrentVersion)
|
||
|
|
||
|
# Automagically commit local changes
|
||
|
# This preserves local changes
|
||
|
su -c "git add -A ." $USER
|
||
|
su -c "git commit -m \"CRON: auto commit\"" $USER
|
||
|
|
||
|
# Pull latest changes from upstream
|
||
|
su -c "git fetch" $USER
|
||
|
su -c "git merge origin/master -m \"Auto Merge\"" $USER
|
||
|
|
||
|
# Get new version hash
|
||
|
GIT_NEW_REVISION=$(getCurrentVersion)
|
||
|
|
||
|
# Push changes
|
||
|
su -c "git push" $USER
|
||
|
|
||
|
if [ $GIT_REVISION != $GIT_NEW_REVISION ]
|
||
|
then
|
||
|
# ATTENTION: Specific handling to sync backbone keys to own directory
|
||
|
mkdir -p $FASTD_BACKBONE
|
||
|
rm -f $FASTD_BACKBONE/*
|
||
|
cp $FASTD_PEERS/srv[0-9][0-9]* $FASTD_PEERS/gateway[0-9][0-9]* $FASTD_BACKBONE/
|
||
|
|
||
|
# Version has changed we need to update
|
||
|
echo "Reload fastd peers"
|
||
|
kill -HUP $(pidof fastd)
|
||
|
fi
|