Merge branch 'master' into dev
This commit is contained in:
@@ -39,8 +39,11 @@ update_all(){
|
||||
if [ "$KLIPPERSCREEN_UPDATE_AVAIL" = "true" ]; then
|
||||
echo -e "| ${cyan}● KlipperScreen${default} |"
|
||||
fi
|
||||
if [ "$PGC_UPDATE_AVAIL" = "true" ]; then
|
||||
echo -e "| ${cyan}● PrettyGCode for Klipper${default} |"
|
||||
fi
|
||||
if [ "$MOONRAKERTELEGRAMBOT_UPDATE_AVAIL" = "true" ]; then
|
||||
echo -e "| ${cyan}● MoonrakerTelegramBot${default} |"
|
||||
echo -e "| ${cyan}● MoonrakerTelegramBot${default} |"
|
||||
fi
|
||||
if [ "$SYS_UPDATE_AVAIL" = "true" ]; then
|
||||
echo -e "| ${cyan}● System${default} |"
|
||||
@@ -65,8 +68,159 @@ update_all(){
|
||||
done
|
||||
}
|
||||
|
||||
update_log_paths(){
|
||||
### update services to make use of moonrakers new log_path option
|
||||
### https://github.com/Arksine/moonraker/commit/829b3a4ee80579af35dd64a37ccc092a1f67682a
|
||||
shopt -s extglob # enable extended globbing
|
||||
source_kiauh_ini
|
||||
LPATH="${HOME}/klipper_logs"
|
||||
[ ! -d "$LPATH" ] && mkdir -p "$LPATH"
|
||||
FILE="$SYSTEMDDIR/$1?(-*([0-9])).service"
|
||||
for file in $(ls $FILE); do
|
||||
[ "$1" == "klipper" ] && LOG="klippy"
|
||||
[ "$1" == "moonraker" ] && LOG="moonraker"
|
||||
if [ ! "$(grep "\-l" $file)" ]; then
|
||||
status_msg "Updating $file ..."
|
||||
sudo sed -i -r "/ExecStart=/ s|$| -l $LPATH/$LOG.log|" $file
|
||||
ok_msg "$file updated!"
|
||||
elif [ "$(grep "\-l \/tmp\/$LOG" $file)" ]; then
|
||||
status_msg "Updating $file ..."
|
||||
sudo sed -i -r "/ExecStart=/ s|-l \/tmp\/$LOG|-l $LPATH/$LOG|" $file
|
||||
ok_msg "$file updated!"
|
||||
fi
|
||||
done
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
# patch log_path entry if not found
|
||||
dir1="$klipper_cfg_loc"
|
||||
dir2="$klipper_cfg_loc/printer_*"
|
||||
for conf in $(find $dir1 $dir2 -name "moonraker.conf" 2> /dev/null); do
|
||||
if ! grep -q "log_path" $conf; then
|
||||
status_msg "Patching $conf"
|
||||
sed -i "/^config_path/a log_path: $LPATH" $conf
|
||||
ok_msg "OK!"
|
||||
fi
|
||||
done
|
||||
|
||||
# create symlink for mainsail and fluidd nginx logs
|
||||
symlink_webui_nginx_log "mainsail"
|
||||
symlink_webui_nginx_log "fluidd"
|
||||
|
||||
# create symlink for webcamd log
|
||||
if [ -f "/var/log/webcamd.log" ] && [ ! -L "$LPATH/webcamd.log" ]; then
|
||||
status_msg "Creating symlink for '/var/log/webcamd.log' ..."
|
||||
ln -s "/var/log/webcamd.log" "$LPATH"
|
||||
ok_msg "OK!"
|
||||
fi
|
||||
|
||||
shopt -u extglob # disable extended globbing
|
||||
}
|
||||
|
||||
migrate_custompios(){
|
||||
### migrate vanilla mainsailOS 0.4.0 / fluiddPI v1.13.0
|
||||
### 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
|
||||
# replace old webcamd.service and webcamd
|
||||
status_msg "Migrating MJPG-Streamer..."
|
||||
sudo systemctl stop webcamd
|
||||
sudo rm -f "/etc/systemd/system/webcamd.service"
|
||||
sudo rm -f "/root/bin/webcamd"
|
||||
sudo wget $WEBCAMD_SRC -O "/usr/local/bin/webcamd"
|
||||
sudo wget $MJPG_SERV_SRC -O "/etc/systemd/system/webcamd.service"
|
||||
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 chown pi:pi "${HOME}/klipper_config/webcam.txt"
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart webcamd
|
||||
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 rm -f "/etc/init.d/klipper"
|
||||
sudo rm -f "/etc/default/klipper"
|
||||
sudo wget $KL_SERV_SRC -O "/etc/systemd/system/klipper.service"
|
||||
sudo systemctl enable klipper.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart klipper
|
||||
ok_msg "OK!"
|
||||
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(){
|
||||
klipper_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
if [ ! -d $KLIPPER_DIR ]; then
|
||||
cd ${HOME} && git clone $KLIPPER_REPO
|
||||
else
|
||||
@@ -75,42 +229,32 @@ update_klipper(){
|
||||
save_klipper_state
|
||||
status_msg "Updating $GET_BRANCH"
|
||||
cd $KLIPPER_DIR
|
||||
KLIPPER_OLDREQ_MD5SUM="$(md5sum $KLIPPER_DIR/scripts/klippy-requirements.txt | cut -d " " -f1)"
|
||||
|
||||
if [ "$DETACHED_HEAD" == "true" ]; then
|
||||
git checkout $GET_BRANCH
|
||||
unset DETACHED_HEAD
|
||||
fi
|
||||
|
||||
### pull latest files from github
|
||||
git pull && ok_msg "Update successfull!"
|
||||
|
||||
### check for possible new dependencies and install them
|
||||
if [[ $(md5sum $KLIPPER_DIR/scripts/klippy-requirements.txt | cut -d " " -f1) != $KLIPPER_OLDREQ_MD5SUM ]]; then
|
||||
PYTHONDIR="${HOME}/klippy-env"
|
||||
status_msg "New dependecies detected..."
|
||||
|
||||
### always rebuild the pythondir from scratch if new dependencies were detected
|
||||
rm -rf ${PYTHONDIR}
|
||||
virtualenv -p python2 ${PYTHONDIR}
|
||||
$PYTHONDIR/bin/pip install -r $KLIPPER_DIR/scripts/klippy-requirements.txt
|
||||
ok_msg "Dependencies have been installed!"
|
||||
fi
|
||||
|
||||
ok_msg "Update complete!"
|
||||
git pull
|
||||
### read PKGLIST and install possible new dependencies
|
||||
install_klipper_packages
|
||||
### install possible new python dependencies
|
||||
KLIPPER_REQ_TXT="$KLIPPER_DIR/scripts/klippy-requirements.txt"
|
||||
$KLIPPY_ENV/bin/pip install -r $KLIPPER_REQ_TXT
|
||||
fi
|
||||
klipper_service "restart"
|
||||
update_log_paths "klipper"
|
||||
ok_msg "Update complete!"
|
||||
do_action_service "restart" "klipper"
|
||||
}
|
||||
|
||||
update_dwc2fk(){
|
||||
dwc_service "stop"
|
||||
do_action_service "stop" "dwc"
|
||||
bb4u "dwc2"
|
||||
if [ ! -d $DWC2FK_DIR ]; then
|
||||
cd ${HOME} && git clone $DWC2FK_REPO
|
||||
else
|
||||
cd $DWC2FK_DIR && git pull
|
||||
fi
|
||||
dwc_service "start"
|
||||
do_action_service "start" "dwc"
|
||||
}
|
||||
|
||||
update_dwc2(){
|
||||
@@ -122,38 +266,30 @@ update_mainsail(){
|
||||
bb4u "mainsail"
|
||||
status_msg "Updating Mainsail ..."
|
||||
mainsail_setup
|
||||
symlink_webui_nginx_log "mainsail"
|
||||
}
|
||||
|
||||
update_fluidd(){
|
||||
bb4u "fluidd"
|
||||
status_msg "Updating Fluidd ..."
|
||||
fluidd_setup
|
||||
symlink_webui_nginx_log "fluidd"
|
||||
}
|
||||
|
||||
update_moonraker(){
|
||||
moonraker_service "stop"
|
||||
do_action_service "stop" "moonraker"
|
||||
bb4u "moonraker"
|
||||
status_msg "Updating Moonraker ..."
|
||||
cd $MOONRAKER_DIR
|
||||
MOONRAKER_OLDREQ_MD5SUM=$(md5sum $MOONRAKER_DIR/scripts/moonraker-requirements.txt | cut -d " " -f1)
|
||||
|
||||
### pull latest files from github
|
||||
git pull && ok_msg "Update successfull!"
|
||||
|
||||
### check for possible new dependencies and install them
|
||||
if [[ $(md5sum $MOONRAKER_DIR/scripts/moonraker-requirements.txt | cut -d " " -f1) != $MOONRAKER_OLDREQ_MD5SUM ]]; then
|
||||
PYTHONDIR="${HOME}/moonraker-env"
|
||||
status_msg "New dependecies detected..."
|
||||
### always rebuild the pythondir from scratch if new dependencies were detected
|
||||
rm -rf ${PYTHONDIR}
|
||||
virtualenv -p /usr/bin/python3 ${PYTHONDIR}
|
||||
ln -s /usr/lib/python3/dist-packages/gpiod* ${PYTHONDIR}/lib/python*/site-packages
|
||||
${PYTHONDIR}/bin/pip install -r $MOONRAKER_DIR/scripts/moonraker-requirements.txt
|
||||
ok_msg "Dependencies have been installed!"
|
||||
fi
|
||||
|
||||
cd $MOONRAKER_DIR && git pull
|
||||
### read PKGLIST and install possible new dependencies
|
||||
install_moonraker_packages
|
||||
### install possible new python dependencies
|
||||
MR_REQ_TXT="$MOONRAKER_DIR/scripts/moonraker-requirements.txt"
|
||||
$MOONRAKER_ENV/bin/pip install -r $MR_REQ_TXT
|
||||
update_log_paths "moonraker"
|
||||
ok_msg "Update complete!"
|
||||
moonraker_service "restart"
|
||||
do_action_service "restart" "moonraker"
|
||||
}
|
||||
|
||||
update_klipperscreen(){
|
||||
@@ -161,7 +297,7 @@ update_klipperscreen(){
|
||||
cd $KLIPPERSCREEN_DIR
|
||||
KLIPPERSCREEN_OLDREQ_MD5SUM=$(md5sum $KLIPPERSCREEN_DIR/scripts/KlipperScreen-requirements.txt | cut -d " " -f1)
|
||||
git pull origin master -q && ok_msg "Fetch successfull!"
|
||||
git checkout -f origin/master && ok_msg "Checkout successfull"
|
||||
git checkout -f master && ok_msg "Checkout successfull"
|
||||
#KLIPPERSCREEN_NEWREQ_MD5SUM=$(md5sum $KLIPPERSCREEN_DIR/scripts/KlipperScreen-requirements.txt)
|
||||
if [[ $(md5sum $KLIPPERSCREEN_DIR/scripts/KlipperScreen-requirements.txt | cut -d " " -f1) != $KLIPPERSCREEN_OLDREQ_MD5SUM ]]; then
|
||||
status_msg "New dependecies detected..."
|
||||
@@ -173,6 +309,13 @@ update_klipperscreen(){
|
||||
start_klipperscreen
|
||||
}
|
||||
|
||||
update_pgc_for_klipper(){
|
||||
PGC_DIR="${HOME}/pgcode"
|
||||
status_msg "Updating PrettyGCode for Klipper ..."
|
||||
cd $PGC_DIR && git pull
|
||||
ok_msg "Update complete!"
|
||||
}
|
||||
|
||||
update_MoonrakerTelegramBot(){
|
||||
stop_MoonrakerTelegramBot
|
||||
cd $MOONRAKERTELEGRAMBOT_DIR
|
||||
@@ -184,7 +327,7 @@ update_MoonrakerTelegramBot(){
|
||||
|
||||
update_system(){
|
||||
status_msg "Updating System ..."
|
||||
sudo apt-get update && sudo apt-get upgrade -y
|
||||
sudo apt-get update --allow-releaseinfo-change && sudo apt-get upgrade -y
|
||||
ok_msg "Update complete! Check the log above!"
|
||||
ok_msg "KIAUH won't do any dist-upgrades!\n"
|
||||
}
|
||||
Reference in New Issue
Block a user