Bootstrap Python rewrite skeleton
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
[program:home_automation_backend]
|
||||
command=
|
||||
directory=
|
||||
user=
|
||||
group=
|
||||
environment=
|
||||
autostart=true
|
||||
autorestart=true
|
||||
startsecs=15
|
||||
startretries=100
|
||||
stopwaitsecs=30
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
||||
stdout_logfile_maxbytes=5MB
|
||||
stdout_logfile_backups=5
|
||||
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Argument parsing
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "Usage: $0 [--install|--uninstall|--help]"
|
||||
echo " --install Install the automation backend"
|
||||
echo " --uninstall Uninstall the automation backend"
|
||||
echo " --update Update the installation"
|
||||
echo " --help Show this help message"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
key="$1"
|
||||
case $key in
|
||||
--install)
|
||||
INSTALL=true
|
||||
;;
|
||||
--uninstall)
|
||||
UNINSTALL=true
|
||||
;;
|
||||
--update)
|
||||
UPDATE=true
|
||||
;;
|
||||
--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"
|
||||
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")")
|
||||
|
||||
# Install or uninstall based on arguments
|
||||
install_backend() {
|
||||
# Installation code here
|
||||
echo "Installing..."
|
||||
|
||||
sudo supervisorctl stop $SUPERVISOR_CFG_NAME
|
||||
|
||||
mkdir -p $TARGET_DIR
|
||||
cd $BASEDIR"/../src/" && go build -o $TARGET_DIR/$APP_NAME
|
||||
|
||||
|
||||
cp $BASEDIR/"$SUPERVISOR_CFG_NAME"_template.conf $BASEDIR/$SUPERVISOR_CFG
|
||||
|
||||
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
|
||||
|
||||
sudo mv $BASEDIR/$SUPERVISOR_CFG /etc/supervisor/conf.d/$SUPERVISOR_CFG
|
||||
|
||||
sudo supervisorctl reread
|
||||
sudo supervisorctl update
|
||||
sudo supervisorctl start $SUPERVISOR_CFG_NAME
|
||||
|
||||
echo "Installation complete."
|
||||
}
|
||||
uninstall_backend() {
|
||||
# Uninstallation code here
|
||||
echo "Uninstalling..."
|
||||
|
||||
sudo supervisorctl stop $SUPERVISOR_CFG_NAME
|
||||
|
||||
sudo supervisorctl remove $SUPERVISOR_CFG_NAME
|
||||
|
||||
sudo rm /etc/supervisor/conf.d/$SUPERVISOR_CFG
|
||||
|
||||
rm -rf $TARGET_DIR/
|
||||
|
||||
echo "Uninstallation complete."
|
||||
echo "Config files and db is stored in $HOME/.config/home-automation"
|
||||
}
|
||||
update_backend() {
|
||||
uninstall_backend
|
||||
install_backend
|
||||
}
|
||||
|
||||
if [[ $INSTALL ]]; then
|
||||
install_backend
|
||||
elif [[ $UNINSTALL ]]; then
|
||||
uninstall_backend
|
||||
elif [[ $UPDATE ]]; then
|
||||
update_backend
|
||||
else
|
||||
echo "Invalid argument: $key"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user