diff --git a/scripts/install_pgc_for_klipper.sh b/scripts/install_pgc_for_klipper.sh deleted file mode 100755 index 36982be..0000000 --- a/scripts/install_pgc_for_klipper.sh +++ /dev/null @@ -1,37 +0,0 @@ -### base variables -PGC_FOR_KLIPPER_REPO="https://github.com/Kragrathea/pgcode" -PGC_DIR="${HOME}/pgcode" - -install_pgc_for_klipper(){ - pgconfsrc="$PGC_DIR/pgcode.local.conf" - pgconf="/etc/nginx/sites-available/pgcode.local.conf" - pgconfsl="/etc/nginx/sites-enabled/pgcode.local.conf" - pgc_default_port="7136" - - status_msg "Installing PrettyGCode for Klipper ..." - ### let the user decide which port is used - echo -e "${cyan}\n###### On which port should PrettyGCode run? (Default: $pgc_default_port)${default} " - read -e -p "${cyan}###### Port:${default} " -i "$pgc_default_port" pgc_custom_port - ### check nginx dependency - dep=(nginx) - dependency_check - ### clone repo - [ -d $PGC_DIR ] && rm -rf $PGC_DIR - cd ${HOME} && git clone $PGC_FOR_KLIPPER_REPO - ### copy nginx config into destination directory - sudo cp $pgconfsrc $pgconf - ### replace default pi user in case the user is called different - sudo sed -i "s|/home/pi/pgcode;|/home/${USER}/pgcode;|" $pgconf - ### replace default port - if [ $pgc_custom_port != $pgc_default_port ]; then - sudo sed -i "s|listen $pgc_default_port;|listen $pgc_custom_port;|" $pgconf - sudo sed -i "s|listen \[::\]:$pgc_default_port;|listen \[::\]:$pgc_custom_port;|" $pgconf - fi - ### create symlink - [ ! -L $pgconfsl ] && sudo ln -s $pgconf $pgconfsl - sudo systemctl restart nginx - ### show URI - pgc_uri="http://$(hostname -I | cut -d" " -f1):$pgc_custom_port" - echo -e "${cyan}\n● Accessible via:${default} $pgc_uri" - ok_msg "PrettyGCode for Klipper installed!\n" -} \ No newline at end of file diff --git a/scripts/pretty_gcode.sh b/scripts/pretty_gcode.sh new file mode 100644 index 0000000..0cf342c --- /dev/null +++ b/scripts/pretty_gcode.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +#=======================================================================# +# Copyright (C) 2020 - 2022 Dominik Willner # +# # +# This file is part of KIAUH - Klipper Installation And Update Helper # +# https://github.com/th33xitus/kiauh # +# # +# This file may be distributed under the terms of the GNU GPLv3 license # +#=======================================================================# + +set -e + +### base variables +PGC_FOR_KLIPPER_REPO="https://github.com/Kragrathea/pgcode" +PGC_DIR="${HOME}/pgcode" + +#=================================================# +#================== INSTALL PGC ==================# +#=================================================# + +install_pgc_for_klipper(){ + pgconfsrc="${PGC_DIR}/pgcode.local.conf" + pgconf="/etc/nginx/sites-available/pgcode.local.conf" + pgconfsl="/etc/nginx/sites-enabled/pgcode.local.conf" + pgc_default_port="7136" + + status_msg "Installing PrettyGCode for Klipper ..." + ### let the user decide which port is used + echo -e "${cyan}\n###### On which port should PrettyGCode run? (Default: ${pgc_default_port})${white} " + read -e -p "${cyan}###### Port:${white} " -i "${pgc_default_port}" pgc_custom_port + ### check nginx dependency + dep=(nginx) + dependency_check + ### clone repo + [ -d "${PGC_DIR}" ] && rm -rf "${PGC_DIR}" + cd "${HOME}" && git clone "${PGC_FOR_KLIPPER_REPO}" + ### copy nginx config into destination directory + sudo cp "${pgconfsrc}" "${pgconf}" + ### replace default pi user in case the user is called different + sudo sed -i "s|/home/pi/pgcode;|/home/${USER}/pgcode;|" "${pgconf}" + ### replace default port + if [ "${pgc_custom_port}" != "${pgc_default_port}" ]; then + sudo sed -i "s|listen ${pgc_default_port};|listen ${pgc_custom_port};|" "${pgconf}" + sudo sed -i "s|listen \[::\]:${pgc_default_port};|listen \[::\]:${pgc_custom_port};|" "${pgconf}" + fi + ### create symlink + [ ! -L "${pgconfsl}" ] && sudo ln -s "${pgconf}" "${pgconfsl}" + sudo systemctl restart nginx + ### show URI + pgc_uri="http://$(hostname -I | cut -d" " -f1):${pgc_custom_port}" + echo -e "${cyan}\n● Accessible via:${white} ${pgc_uri}" + ok_msg "PrettyGCode for Klipper installed!\n" +} + +#=================================================# +#=================== REMOVE PGC ==================# +#=================================================# + +remove_prettygcode(){ + pgconf="/etc/nginx/sites-available/pgcode.local.conf" + pgconfsl="/etc/nginx/sites-enabled/pgcode.local.conf" + if [ -d "${HOME}/pgcode" ] || [ -f "${pgconf}" ] || [ -L "${pgconfsl}" ]; then + status_msg "Removing PrettyGCode for Klipper ..." + rm -rf "${HOME}/pgcode" + sudo rm -f "${pgconf}" + sudo rm -f "${pgconfsl}" + sudo systemctl restart nginx + CONFIRM_MSG="PrettyGCode for Klipper successfully removed!" + else + ERROR_MSG="PrettyGCode for Klipper not found!\n Skipping..." + fi +} + +#=================================================# +#=================== UPDATE PGC ==================# +#=================================================# + +update_pgc_for_klipper(){ + PGC_DIR="${HOME}/pgcode" + status_msg "Updating PrettyGCode for Klipper ..." + cd "${PGC_DIR}" && git pull + ok_msg "Update complete!" +} + +#=================================================# +#=================== PGC STATUS ==================# +#=================================================# + +read_pgc_versions(){ + PGC_DIR="${HOME}/pgcode" + if [ -d "${PGC_DIR}" ] && [ -d "${PGC_DIR}/.git" ]; then + cd "${PGC_DIR}" + git fetch origin main -q + LOCAL_PGC_COMMIT=$(git describe HEAD --always --tags | cut -d "-" -f 1,2) + REMOTE_PGC_COMMIT=$(git describe origin/main --always --tags | cut -d "-" -f 1,2) + else + LOCAL_PGC_COMMIT=${NONE} + REMOTE_PGC_COMMIT=${NONE} + fi +} + +compare_pgc_versions(){ + unset PGC_UPDATE_AVAIL + read_pgc_versions + if [ "${LOCAL_PGC_COMMIT}" != "${REMOTE_PGC_COMMIT}" ]; then + LOCAL_PGC_COMMIT="${yellow}$(printf "%-12s" "${LOCAL_PGC_COMMIT}")${white}" + REMOTE_PGC_COMMIT="${green}$(printf "%-12s" "${REMOTE_PGC_COMMIT}")${white}" + # add PGC to the update all array for the update all function in the updater + PGC_UPDATE_AVAIL="true" && update_arr+=(update_pgc_for_klipper) + else + LOCAL_PGC_COMMIT="${green}$(printf "%-12s" "${LOCAL_PGC_COMMIT}")${white}" + REMOTE_PGC_COMMIT="${green}$(printf "%-12s" "${REMOTE_PGC_COMMIT}")${white}" + PGC_UPDATE_AVAIL="false" + fi +} \ No newline at end of file diff --git a/scripts/remove.sh b/scripts/remove.sh index e9d3685..6e8fa6c 100755 --- a/scripts/remove.sh +++ b/scripts/remove.sh @@ -87,18 +87,3 @@ remove_nginx(){ ERROR_MSG=" Looks like Nginx was already removed!\n Skipping..." fi } - -remove_prettygcode(){ - pgconf="/etc/nginx/sites-available/pgcode.local.conf" - pgconfsl="/etc/nginx/sites-enabled/pgcode.local.conf" - if [ -d ${HOME}/pgcode ] || [ -f $pgconf ] || [ -L $pgconfsl ]; then - status_msg "Removing PrettyGCode for Klipper ..." - rm -rf ${HOME}/pgcode - sudo rm -f $pgconf - sudo rm -f $pgconfsl - sudo systemctl restart nginx - CONFIRM_MSG="PrettyGCode for Klipper successfully removed!" - else - ERROR_MSG="PrettyGCode for Klipper not found!\n Skipping..." - fi -} diff --git a/scripts/status.sh b/scripts/status.sh index 2a58183..7b03370 100755 --- a/scripts/status.sh +++ b/scripts/status.sh @@ -149,37 +149,6 @@ compare_fluidd_versions(){ ############################################################# ############################################################# -read_pgc_versions(){ - PGC_DIR="${HOME}/pgcode" - if [ -d $PGC_DIR ] && [ -d $PGC_DIR/.git ]; then - cd $PGC_DIR - git fetch origin main -q - LOCAL_PGC_COMMIT=$(git describe HEAD --always --tags | cut -d "-" -f 1,2) - REMOTE_PGC_COMMIT=$(git describe origin/main --always --tags | cut -d "-" -f 1,2) - else - LOCAL_PGC_COMMIT=$NONE - REMOTE_PGC_COMMIT=$NONE - fi -} - -compare_pgc_versions(){ - unset PGC_UPDATE_AVAIL - read_pgc_versions - if [ "$LOCAL_PGC_COMMIT" != "$REMOTE_PGC_COMMIT" ]; then - LOCAL_PGC_COMMIT="${yellow}$(printf "%-12s" "$LOCAL_PGC_COMMIT")${default}" - REMOTE_PGC_COMMIT="${green}$(printf "%-12s" "$REMOTE_PGC_COMMIT")${default}" - # add PGC to the update all array for the update all function in the updater - PGC_UPDATE_AVAIL="true" && update_arr+=(update_pgc_for_klipper) - else - LOCAL_PGC_COMMIT="${green}$(printf "%-12s" "$LOCAL_PGC_COMMIT")${default}" - REMOTE_PGC_COMMIT="${green}$(printf "%-12s" "$REMOTE_PGC_COMMIT")${default}" - PGC_UPDATE_AVAIL="false" - fi -} - -############################################################# -############################################################# - #display this as placeholder if no version/commit could be fetched NONE="${red}$(printf "%-12s" "--------")${default}" diff --git a/scripts/update.sh b/scripts/update.sh index f4e69ca..7d87a60 100755 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -132,13 +132,6 @@ update_fluidd(){ symlink_webui_nginx_log "fluidd" } -update_pgc_for_klipper(){ - PGC_DIR="${HOME}/pgcode" - status_msg "Updating PrettyGCode for Klipper ..." - cd $PGC_DIR && git pull - ok_msg "Update complete!" -} - update_system(){ status_msg "Updating System ..." sudo apt-get update --allow-releaseinfo-change && sudo apt-get upgrade -y