mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-14 19:14:27 +05:00
script: rewrite the auto mainsailOS/fluiddPi migration function
No auto update anymore when updating Klipper. The user now must start this function. It's available in the Advanced Menu.
This commit is contained in:
@@ -14,6 +14,8 @@ advanced_ui(){
|
|||||||
echo -e "| 4) [Build + Flash] | Extensions: | "
|
echo -e "| 4) [Build + Flash] | Extensions: | "
|
||||||
echo -e "| 5) [Build + SD Flash] | 9) [Shell Command] | "
|
echo -e "| 5) [Build + SD Flash] | 9) [Shell Command] | "
|
||||||
echo -e "| 6) [Get MCU ID] | | "
|
echo -e "| 6) [Get MCU ID] | | "
|
||||||
|
echo -e "| | CustomPiOS: | "
|
||||||
|
echo -e "| | 10) [Migration Helper] | "
|
||||||
quit_footer
|
quit_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +68,8 @@ advanced_menu(){
|
|||||||
advanced_ui;;
|
advanced_ui;;
|
||||||
9)
|
9)
|
||||||
do_action "setup_gcode_shell_command" "advanced_ui";;
|
do_action "setup_gcode_shell_command" "advanced_ui";;
|
||||||
|
10)
|
||||||
|
do_action "migration_menu";;
|
||||||
Q|q)
|
Q|q)
|
||||||
clear; main_menu; break;;
|
clear; main_menu; break;;
|
||||||
*)
|
*)
|
||||||
@@ -163,3 +167,40 @@ rollback_ui(){
|
|||||||
echo -e "| $PREV_UI | "
|
echo -e "| $PREV_UI | "
|
||||||
quit_footer
|
quit_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
migration_ui(){
|
||||||
|
top_border
|
||||||
|
echo -e "| $(title_msg "~~~~~~~~~ [ CustomPiOS Migration ] ~~~~~~~~~~") | "
|
||||||
|
hr
|
||||||
|
echo -e "| This function will help you to migrate a vanilla | "
|
||||||
|
echo -e "| MainsailOS or FluiddPi image to a newer state. | "
|
||||||
|
blank_line
|
||||||
|
echo -e "| Only use this function if you use MainsailOS 0.4.0 | "
|
||||||
|
echo -e "| or lower, or FluiddPi v1.13.0 or lower. | "
|
||||||
|
blank_line
|
||||||
|
echo -e "| Please have a look at the KIAUH changelog for more | "
|
||||||
|
echo -e "| details on what this function will do. | "
|
||||||
|
hr
|
||||||
|
echo -e "| | "
|
||||||
|
echo -e "| 1) [Migrate MainsailOS] | "
|
||||||
|
echo -e "| 2) [Migrate FluiddPi] | "
|
||||||
|
echo -e "| | "
|
||||||
|
quit_footer
|
||||||
|
}
|
||||||
|
|
||||||
|
migration_menu(){
|
||||||
|
print_msg && clear_msg
|
||||||
|
migration_ui
|
||||||
|
while true; do
|
||||||
|
read -p "${cyan}Perform action:${default} " action; echo
|
||||||
|
case "$action" in
|
||||||
|
1) migrate_custompios "mainsail"; migration_menu;;
|
||||||
|
2) migrate_custompios "fluiddpi"; migration_menu;;
|
||||||
|
Q|q) clear; advanced_menu; break;;
|
||||||
|
*) print_unkown_cmd; migration_menu;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
@@ -99,40 +99,106 @@ update_log_paths(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
migrate_custompios(){
|
migrate_custompios(){
|
||||||
### migrate vanilla mainsailOS 0.4.0 and fluiddPI v1.13.0
|
### migrate vanilla mainsailOS 0.4.0 / fluiddPI v1.13.0
|
||||||
### and older to be in sync with their newer releases
|
### and older to be in sync with newer releases
|
||||||
|
WEBCAMD_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/root/usr/local/bin/webcamd"
|
||||||
|
MJPG_SERV_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/root/etc/systemd/system/webcamd.service"
|
||||||
|
KL_SERV_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/klipper/filesystem/root/etc/systemd/system/klipper.service"
|
||||||
|
NGINX_CFG1="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mainsail/filesystem/root/etc/nginx/conf.d/upstreams.conf"
|
||||||
|
NGINX_CFG2="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mainsail/filesystem/root/etc/nginx/sites-available/mainsail"
|
||||||
|
LOG_ROTATE_KLIPPER="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/klipper/filesystem/root/etc/logrotate.d/klipper"
|
||||||
|
LOG_ROTATE_MOONRAKER="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/moonraker/filesystem/root/etc/logrotate.d/moonraker"
|
||||||
|
LOG_ROTATE_WEBCAMD="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/root/etc/logrotate.d/webcamd"
|
||||||
|
|
||||||
|
if [ "$1" == "mainsail" ]; then
|
||||||
|
OS_VER="MainsailOS"
|
||||||
|
MACRO_CFG="mainsail.cfg"
|
||||||
|
fi
|
||||||
|
if [ "$1" == "fluiddpi" ]; then
|
||||||
|
OS_VER="FluiddPi"
|
||||||
|
MACRO_CFG="client_macros.cfg"
|
||||||
|
fi
|
||||||
|
if [ ! -f "/boot/$1.txt" ] || [ ! -f "/etc/init.d/klipper" ]; then
|
||||||
|
# abort function if there is no sign of an old CustomPiOS anymore
|
||||||
|
ERROR_MSG="No vanilla $OS_VER found. Aborting..." && return 0
|
||||||
|
fi
|
||||||
|
status_msg "Starting migration of $OS_VER... Please wait..."
|
||||||
|
if [ -d "${HOME}/klipper_logs" ]; then
|
||||||
|
# delete an existing klipper_logs directory
|
||||||
|
# shouldn't be there in the first place if its a true vanilla CustomPiOS
|
||||||
|
status_msg "Recreate '~/klipper_logs' directory..."
|
||||||
|
rm -rf "${HOME}/klipper_logs" && mkdir "${HOME}/klipper_logs"
|
||||||
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
if [ -f "/boot/$1.txt" ]; then
|
if [ -f "/boot/$1.txt" ]; then
|
||||||
status_msg "Starting migration... Please wait..."
|
# replace old webcamd.service and webcamd
|
||||||
### migrate webcam related stuff
|
status_msg "Migrating MJPG-Streamer..."
|
||||||
WEBCAMD_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/root/usr/local/bin/webcamd"
|
sudo systemctl stop webcamd
|
||||||
MJPG_SERV_SRC="${SRCDIR}/kiauh/resources/webcamd.service"
|
sudo rm -f "/etc/systemd/system/webcamd.service"
|
||||||
MJPG_SERV_TARGET="$SYSTEMDDIR/webcamd.service"
|
|
||||||
KL_SERV_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/klipper/filesystem/root/etc/systemd/system/klipper.service"
|
|
||||||
# stop webcam service
|
|
||||||
sudo systemctl stop webcamd.service
|
|
||||||
# replace old webcamd.service
|
|
||||||
sudo rm -f "$SYSTEMDDIR/webcamd.service"
|
|
||||||
# replace old webcamd
|
|
||||||
sudo rm -f "/root/bin/webcamd"
|
sudo rm -f "/root/bin/webcamd"
|
||||||
sudo cp $MJPG_SERV_SRC $MJPG_SERV_TARGET
|
|
||||||
sudo sed -i "s|%USER%|pi|" $MJPG_SERV_TARGET
|
|
||||||
sudo wget $WEBCAMD_SRC -O "/usr/local/bin/webcamd"
|
sudo wget $WEBCAMD_SRC -O "/usr/local/bin/webcamd"
|
||||||
sudo chmod +x /usr/local/bin/webcamd
|
sudo wget $MJPG_SERV_SRC -O "/etc/systemd/system/webcamd.service"
|
||||||
# copy mainsail.txt or fluidd.txt to klipper_config and rename it
|
sudo sed -i "s/MainsailOS/$OS_VER/" "/etc/systemd/system/webcamd.service"
|
||||||
|
sudo chmod +x "/usr/local/bin/webcamd"
|
||||||
|
# move mainsail.txt/fluiddpi.txt from boot to klipper_config and rename it
|
||||||
sudo mv "/boot/$1.txt" "${HOME}/klipper_config/webcam.txt"
|
sudo mv "/boot/$1.txt" "${HOME}/klipper_config/webcam.txt"
|
||||||
sudo chown pi:pi "${HOME}/klipper_config/webcam.txt"
|
sudo chown pi:pi "${HOME}/klipper_config/webcam.txt"
|
||||||
### migrate klipper related stuff
|
sudo systemctl daemon-reload
|
||||||
sudo service klipper stop
|
sudo systemctl restart webcamd
|
||||||
# stop and remove init.d klipper service
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
|
if [ -f "/etc/init.d/klipper" ] && [ ! -f "/etc/systemd/system/klipper.service" ]; then
|
||||||
|
# replace klipper SysVinit service with systemd service
|
||||||
|
status_msg "Migrating Klipper Service..."
|
||||||
|
sudo systemctl stop klipper
|
||||||
sudo update-rc.d -f klipper remove
|
sudo update-rc.d -f klipper remove
|
||||||
sudo rm -f /etc/init.d/klipper
|
sudo rm -f "/etc/init.d/klipper"
|
||||||
sudo rm -f /etc/default/klipper
|
sudo rm -f "/etc/default/klipper"
|
||||||
# create new systemd service
|
|
||||||
sudo wget $KL_SERV_SRC -O "/etc/systemd/system/klipper.service"
|
sudo wget $KL_SERV_SRC -O "/etc/systemd/system/klipper.service"
|
||||||
sudo systemctl enable klipper.service
|
sudo systemctl enable klipper.service
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
ok_msg "Migration complete!"
|
sudo systemctl restart klipper
|
||||||
|
ok_msg "OK!"
|
||||||
fi
|
fi
|
||||||
|
if [ -f "/etc/systemd/system/moonraker.service" ]; then
|
||||||
|
# update new log path in existing moonraker service
|
||||||
|
status_msg "Updating Moonraker Service..."
|
||||||
|
sudo systemctl stop moonraker
|
||||||
|
update_log_paths "moonraker"
|
||||||
|
sudo systemctl restart moonraker
|
||||||
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
|
if [ -f "/etc/nginx/conf.d/upstreams.conf" ]; then
|
||||||
|
[ "$1" == "mainsail" ] && cfg="mainsail"
|
||||||
|
[ "$1" == "fluiddpi" ] && cfg="fluidd"
|
||||||
|
# update nginx upstreams.conf and mainsail/fluidd config file
|
||||||
|
status_msg "Updating NGINX configurations..."
|
||||||
|
sudo systemctl stop nginx
|
||||||
|
sudo rm -f "/etc/nginx/conf.d/upstreams.conf"
|
||||||
|
sudo rm -f "/etc/nginx/sites-available/$cfg"
|
||||||
|
sudo wget $NGINX_CFG1 -O "/etc/nginx/conf.d/upstreams.conf"
|
||||||
|
sudo wget $NGINX_CFG2 -O "/etc/nginx/sites-available/$cfg"
|
||||||
|
sudo sed -i "s/mainsail/$cfg/g" "/etc/nginx/sites-available/$cfg"
|
||||||
|
sudo systemctl restart nginx
|
||||||
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
|
if [ -f "${HOME}/klipper_config/$MACRO_CFG" ]; then
|
||||||
|
# update macro files
|
||||||
|
status_msg "Updating $MACRO_CFG ..."
|
||||||
|
MACRO_CFG_PATH="${HOME}/klipper_config/$MACRO_CFG"
|
||||||
|
sed -i "/SAVE_GCODE_STATE NAME=PAUSE_state/d" $MACRO_CFG_PATH
|
||||||
|
sed -i "/RESTORE_GCODE_STATE NAME=PAUSE_state/d" $MACRO_CFG_PATH
|
||||||
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
|
if [ -d "/etc/logrotate.d" ]; then
|
||||||
|
# download logrotate configs
|
||||||
|
status_msg "Setting up logrotations..."
|
||||||
|
sudo wget $LOG_ROTATE_KLIPPER -O "/etc/logrotate.d/klipper"
|
||||||
|
sudo wget $LOG_ROTATE_MOONRAKER -O "/etc/logrotate.d/moonraker"
|
||||||
|
sudo wget $LOG_ROTATE_WEBCAMD -O "/etc/logrotate.d/webcamd"
|
||||||
|
ok_msg "OK!"
|
||||||
|
fi
|
||||||
|
ok_msg "Migration done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
update_klipper(){
|
update_klipper(){
|
||||||
@@ -172,8 +238,6 @@ update_klipper(){
|
|||||||
ok_msg "Dependencies have been installed!"
|
ok_msg "Dependencies have been installed!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
migrate_custompios "mainsail"
|
|
||||||
migrate_custompios "fluiddpi"
|
|
||||||
update_log_paths "klipper"
|
update_log_paths "klipper"
|
||||||
ok_msg "Update complete!"
|
ok_msg "Update complete!"
|
||||||
klipper_service "restart"
|
klipper_service "restart"
|
||||||
|
|||||||
Reference in New Issue
Block a user