Updating update_birdnet.sh to make more robust and offer functionality to switch branches for testing remote dev branches

This commit is contained in:
Jake Herbst
2022-05-18 13:58:32 -04:00
parent 1f7fc63afa
commit a786e51da5
+44 -2
View File
@@ -2,12 +2,54 @@
# Update BirdNET-Pi's Git Repo
source /etc/birdnet/birdnet.conf
trap 'exit 1' SIGINT SIGHUP
usage() { echo "Usage: $0 [-r <remote name>] [-b <branch name>]" 1>&2; exit 1; }
# Defaults
remote="origin"
branch="main"
while getopts ":r:b:" o; do
case "${o}" in
r)
remote=${OPTARG}
# Ensure that git remote is configured
git remote show $remote 2&> /dev/null || {
echo "Error: remote '$remote' not found. Add the upstream remote to your repository and try again."
exit 1
}
;;
b)
branch=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
USER=$(awk -F: '/1000/ {print $1}' /etc/passwd)
HOME=$(awk -F: '/1000/ {print $6}' /etc/passwd)
my_dir=$HOME/BirdNET-Pi/scripts
sudo -u$USER git -C $my_dir rm privacy_server.py
sudo -u${USER} git -C $my_dir pull -f
sudo_with_user () {
set -x
sudo -u $USER "$@"
set +x
}
# Reset current HEAD to remove any local changes
sudo_with_user git reset --hard
# Fetches latest changes
sudo_with_user git fetch $remote $branch
# Switches git to specified branch
sudo_with_user git switch -C $branch --track $remote/$branch
sudo systemctl daemon-reload
sudo ln -sf $my_dir/* /usr/local/bin/