mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-13 02:24:27 +05:00
new rollback feature
This commit is contained in:
92
scripts/rollback.sh
Executable file
92
scripts/rollback.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
save_klipper_state(){
|
||||
source_ini
|
||||
#read current klipper state
|
||||
COMMIT_STATE=$(git rev-parse --short HEAD)
|
||||
if [ $GET_BRANCH = origin/master ]; then
|
||||
ORI_OLD=$previous_origin_state
|
||||
ORI_NEW=$COMMIT_STATE
|
||||
sed -i "/previous_origin_state=/s/$ORI_OLD/$ORI_NEW/" $INI_FILE
|
||||
elif [ $GET_BRANCH = dmbutyugin/scurve-shaping ]; then
|
||||
SHA_OLD=$previous_shaping_state
|
||||
SHA_NEW=$COMMIT_STATE
|
||||
sed -i "/previous_shaping_state=/s/$SHA_OLD/$SHA_NEW/" $INI_FILE
|
||||
elif [ $GET_BRANCH = dmbutyugin/scurve-smoothing ]; then
|
||||
SMO_OLD=$previous_smoothing_state
|
||||
SMO_NEW=$COMMIT_STATE
|
||||
sed -i "/previous_smoothing_state=/s/$SMO_OLD/$SMO_NEW/" $INI_FILE
|
||||
elif [ $GET_BRANCH = Arksine/work-web_server-20200131 ]; then
|
||||
WWS_OLD=$previous_moonraker_state
|
||||
WWS_NEW=$COMMIT_STATE
|
||||
sed -i "/previous_moonraker_state=/s/$WWS_OLD/$WWS_NEW/" $INI_FILE
|
||||
elif [ $GET_BRANCH = Arksine/dev-moonraker-testing ]; then
|
||||
DMT_OLD=$previous_dev_moonraker_state
|
||||
DMT_NEW=$COMMIT_STATE
|
||||
sed -i "/previous_dev_moonraker_state=/s/$DMT_OLD/$DMT_NEW/" $INI_FILE
|
||||
fi
|
||||
}
|
||||
|
||||
load_klipper_state(){
|
||||
source_ini
|
||||
print_branch
|
||||
CURR_COMM=$(git rev-parse --short=8 HEAD)
|
||||
if [ "$GET_BRANCH" == "origin/master" ]; then
|
||||
PREV_COMM=$previous_origin_state
|
||||
elif [ "$GET_BRANCH" == "dmbutyugin/scurve-shaping" ]; then
|
||||
PREV_COMM=$previous_shaping_state
|
||||
elif [ "$GET_BRANCH" == "dmbutyugin/scurve-smoothing" ]; then
|
||||
PREV_COMM=$previous_smoothing_state
|
||||
elif [ "$GET_BRANCH" == "Arksine/work-web_server-20200131" ]; then
|
||||
PREV_COMM=$previous_moonraker_state
|
||||
elif [ "$GET_BRANCH" == "Arksine/dev-moonraker-testing" ]; then
|
||||
PREV_COMM=$previous_dev_moonraker_state
|
||||
fi
|
||||
PREV_COMM_DATE=$(git show -s --format=%cd --date=short $PREV_COMM)
|
||||
CURR_COMM_DATE=$(git show -s --format=%cd --date=short $CURR_COMM)
|
||||
if [ $CURR_COMM = $PREV_COMM ]; then
|
||||
CURR_UI=$(echo -e "${green}$CURR_COMM from $CURR_COMM_DATE${default}")
|
||||
PREV_UI=$(echo -e "${green}$PREV_COMM from $PREV_COMM_DATE${default}")
|
||||
else
|
||||
CURR_UI=$(echo -e "${yellow}$CURR_COMM from $CURR_COMM_DATE${default}")
|
||||
PREV_UI=$(echo -e "${yellow}$PREV_COMM from $PREV_COMM_DATE${default}")
|
||||
fi
|
||||
rollback_ui
|
||||
rollback_klipper
|
||||
}
|
||||
|
||||
rollback_klipper(){
|
||||
if [ "$CURR_COMM" != "$PREV_COMM" ]; then
|
||||
while true; do
|
||||
echo -e "${cyan}"
|
||||
read -p "###### Do you want to rollback to $PREV_COMM? (Y/n): " yn
|
||||
echo -e "${default}"
|
||||
case "$yn" in
|
||||
Y|y|Yes|yes|"")
|
||||
clear
|
||||
print_header
|
||||
status_msg "Rolling back to $PREV_COMM ..."
|
||||
git reset --hard $PREV_COMM -q
|
||||
ok_msg "Rollback complete!"; echo
|
||||
load_klipper_state
|
||||
break;;
|
||||
N|n|No|no) clear; advanced_menu; break;;
|
||||
Q|q) clear; advanced_menu; break;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
while true; do
|
||||
echo -e "${cyan}"
|
||||
read -p "Perform action: " action; echo
|
||||
echo -e "${default}"
|
||||
case "$action" in
|
||||
Q|q)
|
||||
clear; advanced_menu; break;;
|
||||
*)
|
||||
clear
|
||||
print_header
|
||||
print_unkown_cmd
|
||||
print_msg && clear_msg
|
||||
rollback_ui;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user