Creality-Helper-Script/scripts/moonraker_nginx.sh
2024-03-10 21:45:05 +01:00

107 lines
No EOL
3.8 KiB
Bash
Executable file

#!/bin/sh
set -e
function moonraker_nginx_message(){
top_line
title 'Moonraker and Nginx' "${yellow}"
inner_line
hr
echo -e "${cyan}Moonraker is a Python 3 based web server that exposes APIs ${white}"
echo -e "${cyan}with which client applications may use to interact with ${white}"
echo -e "${cyan}Klipper firmware. ${white}"
echo -e "${cyan}Nginx is a web server that can also be used as a reverse ${white}"
echo -e "${cyan}proxy, load balancer, mail proxy and HTTP cache. ${white}"
hr
bottom_line
}
function install_moonraker_nginx(){
moonraker_nginx_message
local yn
while true; do
install_msg "Moonraker and Nginx" yn
case "${yn}" in
Y|y)
echo -e "${white}"
echo -e "Info: Extracting files..."
tar -xvf "$MOONRAKER_URL1" -C "$USR_DATA"
echo -e "Info: Copying services files..."
if [ ! -f "$INITD_FOLDER"/S50nginx ]; then
cp "$NGINX_SERVICE_URL" "$INITD_FOLDER"/S50nginx
chmod +x "$INITD_FOLDER"/S50nginx
fi
if [ ! -f "$INITD_FOLDER"/S56moonraker_service ]; then
cp "$MOONRAKER_SERVICE_URL" "$INITD_FOLDER"/S56moonraker_service
chmod +x "$INITD_FOLDER"/S56moonraker_service
fi
echo -e "Info: Copying Moonraker configuration file..."
cp "$MOONRAKER_URL2" "$KLIPPER_CONFIG_FOLDER"/moonraker.conf
if [ -f "$PRINTER_DATA_FOLDER"/moonraker.asvc ]; then
rm -f "$PRINTER_DATA_FOLDER"/moonraker.asvc
fi
cp "$MOONRAKER_URL3" "$PRINTER_DATA_FOLDER"/moonraker.asvc
echo -e "Info: Applying changes from official repo..."
cd "$MOONRAKER_FOLDER"/moonraker
git stash; git checkout master; git pull
echo -e "Info: Installing Supervisor Lite..."
chmod 755 "$SUPERVISOR_URL"
ln -sf "$SUPERVISOR_URL" "$SUPERVISOR_FILE"
echo -e "Info: Installing Host Controls Support..."
chmod 755 "$SUDO_URL"
chmod 755 "$SYSTEMCTL_URL"
ln -sf "$SUDO_URL" "$SUDO_FILE"
ln -sf "$SYSTEMCTL_URL" "$SYSTEMCTL_FILE"
echo -e "Info: Installing necessary packages..."
cd "$MOONRAKER_FOLDER"/moonraker-env/bin
python3 -m pip install --no-cache-dir pyserial-asyncio==0.6
echo -e "Info: Starting Nginx service..."
start_nginx
echo -e "Info: Starting Moonraker service..."
start_moonraker
ok_msg "Moonraker and Nginx have been installed successfully!"
return;;
N|n)
error_msg "Installation canceled!"
return;;
*)
error_msg "Please select a correct choice!";;
esac
done
}
function remove_moonraker_nginx(){
moonraker_nginx_message
local yn
while true; do
remove_msg "Moonraker and Nginx" yn
case "${yn}" in
Y|y)
echo -e "${white}"
echo -e "Info: Stopping Moonraker and Nginx services..."
cd /overlay/upper
stop_moonraker
stop_nginx
echo -e "Info: Removing files..."
rm -f "$INITD_FOLDER"/S50nginx
rm -f "$INITD_FOLDER"/S56moonraker_service
rm -f "$KLIPPER_CONFIG_FOLDER"/moonraker.conf
rm -f "$KLIPPER_CONFIG_FOLDER"/.moonraker.conf.bkp
rm -f "$PRINTER_DATA_FOLDER"/.moonraker.uuid
rm -f "$PRINTER_DATA_FOLDER"/moonraker.asvc
rm -rf "$PRINTER_DATA_FOLDER"/comms
rm -rf "$NGINX_FOLDER"
rm -rf "$MOONRAKER_FOLDER"
rm -f "$SUPERVISOR_FILE"
rm -f "$SUDO_FILE"
rm -f "$SYSTEMCTL_FILE"
ok_msg "Moonraker and Nginx have been removed successfully!"
return;;
N|n)
error_msg "Deletion canceled!"
return;;
*)
error_msg "Please select a correct choice!";;
esac
done
}