Files
kiauh/kiauh.sh
2020-07-18 20:30:49 +02:00

436 lines
10 KiB
Bash
Executable File

#!/bin/bash
clear
set -e
### set some variables
ERROR_MSG=""
green="\e[92m"
yellow="\e[93m"
red="\e[91m"
cyan="\e[96m"
default="\e[39m"
### set some messages
warn_msg(){
echo -e "${red}<!!!!> $1${default}"
}
status_msg(){
echo; echo -e "${yellow}###### $1${default}"
}
ok_msg(){
echo -e "${green}>>>>>> $1${default}"
}
title_msg(){
echo -e "${cyan}$1${default}"
}
get_date(){
current_date=`date +"%Y-%m-%d_%H%M%S"`
}
### sourcing all additional scripts
for script in ${HOME}/kiauh/scripts/*; do . $script; done
### set important directories
#klipper
KLIPPER_DIR=${HOME}/klipper
KLIPPY_ENV_DIR=${HOME}/klippy-env
KLIPPER_SERVICE1=/etc/init.d/klipper
KLIPPER_SERVICE2=/etc/default/klipper
#dwc2
DWC2FK_DIR=${HOME}/dwc2-for-klipper
DWC2_DIR=${HOME}/sdcard/dwc2
WEB_DWC2=${HOME}/klipper/klippy/extras/web_dwc2.py
TORNADO_DIR1=${HOME}/klippy-env/lib/python2.7/site-packages/tornado
TORNADO_DIR2=${HOME}/klippy-env/lib/python2.7/site-packages/tornado-5.1.1.dist-info
#mainsail/moonraker
MAINSAIL_DIR=${HOME}/mainsail
MOONRAKER_SERVICE1=/etc/init.d/moonraker
MOONRAKER_SERVICE2=/etc/default/moonraker
#octoprint
OCTOPRINT_DIR=${HOME}/OctoPrint
OCTOPRINT_CFG_DIR=${HOME}/.octoprint
OCTOPRINT_SERVICE1=/etc/init.d/octoprint
OCTOPRINT_SERVICE2=/etc/default/octoprint
#misc
INI_DIR=${HOME}/kiauh/kiauh.ini
BACKUP_DIR=${HOME}/kiauh-backups
PRINTER_CFG=${HOME}/printer.cfg
### set github repos
KLIPPER_REPO=https://github.com/KevinOConnor/klipper.git
ARKSINE_REPO=https://github.com/Arksine/klipper.git
DMBUTYUGIN_REPO=https://github.com/dmbutyugin/klipper.git
DWC2FK_REPO=https://github.com/Stephan3/dwc2-for-klipper.git
#branches
BRANCH_MOONRAKER=Arksine/work-web_server-20200131
BRANCH_DEV_MOONRAKER=Arksine/dev-moonraker-testing
BRANCH_SCURVE_SMOOTHING=dmbutyugin/scurve-smoothing
BRANCH_SCURVE_SHAPING=dmbutyugin/scurve-shaping
print_msg(){
if [[ "$ERROR_MSG" != "" ]]; then
echo -e "${red}"
echo -e "#########################################################"
echo -e "$ERROR_MSG "
echo -e "#########################################################"
echo -e "${default}"
fi
if [ "$CONFIRM_MSG" != "" ]; then
echo -e "${green}"
echo -e "#########################################################"
echo -e "$CONFIRM_MSG "
echo -e "#########################################################"
echo -e "${default}"
fi
}
main_menu(){
print_header
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
#check install status
klipper_status
dwc2_status
mainsail_status
octoprint_status
print_branch
main_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
0)
clear
print_header
ERROR_MSG=" Sorry this function is not implemented yet!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
main_ui;;
1)
clear
install_menu
break;;
2)
clear
update_menu
break;;
3)
clear
remove_menu
break;;
4)
clear
advanced_menu
break;;
5)
clear
print_header
ERROR_MSG=" Sorry this function is not implemented yet!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
main_ui;;
Q|q)
exit -1;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
main_ui;;
esac
done
clear; main_menu
}
install_menu(){
print_header
install_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
1)
clear
print_header
install_klipper
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
install_ui;;
2)
clear
print_header
dwc2_install_routine
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
install_ui;;
3)
clear
print_header
mainsail_install_routine
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
install_ui;;
4)
clear
print_header
octoprint_install_routine
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
install_ui;;
Q|q)
clear; main_menu; break;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
install_ui;;
esac
done
install_menu
}
update_menu(){
print_header
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
read_bb4u_stat
#compare versions
ui_print_versions
update_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
0)
clear
print_header
toggle_backups
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
update_ui;;
1)
clear
print_header
update_klipper && ui_print_versions
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
update_ui;;
2)
clear
print_header
update_dwc2fk && ui_print_versions
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
update_ui;;
3)
clear
print_header
update_dwc2 && ui_print_versions
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
update_ui;;
4)
clear
print_header
update_mainsail && ui_print_versions
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
update_ui;;
Q|q)
clear; main_menu; break;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
ui_print_versions
update_ui;;
esac
done
update_menu
}
remove_menu(){
print_header
remove_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
1)
clear
print_header
remove_klipper
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
2)
clear
print_header
remove_dwc2
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
3)
clear
print_header
remove_mainsail
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
4)
clear
print_header
remove_octoprint
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
5)
clear
print_header
remove_tornado
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
6)
clear
print_header
remove_nginx
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
Q|q)
clear; main_menu; break;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
remove_ui;;
esac
done
remove_menu
}
advanced_menu(){
print_header
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
read_octoprint_service_status
advanced_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
0)
clear
print_header
toggle_octoprint_service
read_octoprint_service_status
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
1)
clear
print_header
switch_menu
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
2)
clear
print_header
build_fw
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
3)
clear
print_header
flash_routine
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
4)
clear
print_header
get_usb_id
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
5)
clear
print_header
get_usb_id && write_printer_id
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
6)
clear
print_header
create_dwc2fk_cfg
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
Q|q)
clear; main_menu; break;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
advanced_ui;;
esac
done
advanced_menu
}
switch_menu(){
if [ -d $KLIPPER_DIR ]; then
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
1)
clear
print_header
switch_to_origin
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui;;
2)
clear
print_header
switch_to_scurve_shaping
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui;;
3)
clear
print_header
switch_to_scurve_smoothing
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui;;
4)
clear
print_header
switch_to_moonraker
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui;;
5)
clear
print_header
switch_to_dev_moonraker
read_branch
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
switch_ui;;
Q|q)
clear; advanced_menu; break;;
esac
done
else
ERROR_MSG=" No Klipper directory found! Download Klipper first!"
fi
}
backup_menu(){
print_header
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
backup_ui
while true; do
read -p "Perform action: " action; echo
case "$action" in
1)
clear
print_header
#function goes here
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
backup_ui;;
Q|q)
clear; main_menu; break;;
*)
clear
print_header
ERROR_MSG=" Sorry, i don't know that command!"
print_msg && CONFIRM_MSG="" && ERROR_MSG=""
backup_ui;;
esac
done
backup_menu
}
check_euid
main_menu