Files

100 lines
2.6 KiB
Bash
Raw Permalink Normal View History

2024-07-17 17:28:00 +02:00
#!/usr/bin/bash
2024-07-23 13:41:27 +02:00
# Argument parsing
if [[ $# -ne 1 ]]; then
echo "Usage: $0 [--install|--uninstall|--help]"
echo " --install Install the automation backend"
echo " --uninstall Uninstall the automation backend"
2024-07-23 14:06:40 +02:00
echo " --update Update the installation"
2024-07-23 13:41:27 +02:00
echo " --help Show this help message"
exit 0
fi
key="$1"
case $key in
--install)
INSTALL=true
;;
--uninstall)
UNINSTALL=true
;;
2024-07-23 14:06:40 +02:00
--update)
UPDATE=true
;;
2024-07-23 13:41:27 +02:00
--help)
echo "Usage: $0 [--install|--uninstall|--update|--help]"
echo " --install Install the automation backend"
echo " --uninstall Uninstall the automation backend"
echo " --update Update the installation"
2024-07-23 13:41:27 +02:00
echo " --help Show this help message"
exit 0
;;
*)
echo "Invalid argument: $key"
exit 1
;;
esac
TARGET_DIR="$HOME/.local/home-automation-backend"
SUPERVISOR_CFG_NAME="home_automation_backend"
APP_NAME="home-automation-backend"
SUPERVISOR_CFG="$SUPERVISOR_CFG_NAME.conf"
BASEDIR=$(dirname "$(realpath "$0")")
2024-07-23 13:41:27 +02:00
# Install or uninstall based on arguments
install_backend() {
2024-07-23 13:41:27 +02:00
# Installation code here
echo "Installing..."
sudo supervisorctl stop $SUPERVISOR_CFG_NAME
2024-07-23 13:41:27 +02:00
mkdir -p $TARGET_DIR
cd $BASEDIR"/../src/" && go build -o $TARGET_DIR/$APP_NAME
2024-07-23 13:41:27 +02:00
cp $BASEDIR/"$SUPERVISOR_CFG_NAME"_template.conf $BASEDIR/$SUPERVISOR_CFG
2024-07-23 13:41:27 +02:00
sed -i "s+command=+command=$TARGET_DIR/$APP_NAME serve+g" $BASEDIR/$SUPERVISOR_CFG
sed -i "s+directory=+directory=$TARGET_DIR+g" $BASEDIR/$SUPERVISOR_CFG
sed -i "s+user=+user=$USER+g" $BASEDIR/$SUPERVISOR_CFG
sed -i "s+group=+group=$USER+g" $BASEDIR/$SUPERVISOR_CFG
sed -i "s+environment=+environment=HOME=\"$HOME\"+g" $BASEDIR/$SUPERVISOR_CFG
2024-07-23 13:41:27 +02:00
sudo mv $BASEDIR/$SUPERVISOR_CFG /etc/supervisor/conf.d/$SUPERVISOR_CFG
2024-07-23 13:41:27 +02:00
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start $SUPERVISOR_CFG_NAME
2024-07-23 13:41:27 +02:00
echo "Installation complete."
}
uninstall_backend() {
2024-07-23 13:41:27 +02:00
# Uninstallation code here
echo "Uninstalling..."
sudo supervisorctl stop $SUPERVISOR_CFG_NAME
2024-07-23 13:41:27 +02:00
sudo supervisorctl remove $SUPERVISOR_CFG_NAME
2024-07-17 17:28:00 +02:00
sudo rm /etc/supervisor/conf.d/$SUPERVISOR_CFG
2024-07-17 17:28:00 +02:00
rm -rf $TARGET_DIR/
2024-07-17 17:28:00 +02:00
2024-07-23 13:41:27 +02:00
echo "Uninstallation complete."
echo "Config files and db is stored in $HOME/.config/home-automation"
2024-07-23 13:41:27 +02:00
}
update_backend() {
uninstall_backend
install_backend
2024-07-23 14:06:40 +02:00
}
2024-07-17 17:28:00 +02:00
2024-07-23 13:41:27 +02:00
if [[ $INSTALL ]]; then
install_backend
2024-07-23 13:41:27 +02:00
elif [[ $UNINSTALL ]]; then
uninstall_backend
2024-07-23 14:06:40 +02:00
elif [[ $UPDATE ]]; then
update_backend
2024-07-23 13:41:27 +02:00
else
echo "Invalid argument: $key"
exit 1
fi