From 256c3f453bca17ef2e937e4c56c46232f740f23e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Sun, 30 Jan 2022 11:01:19 +0100 Subject: [PATCH] PF-build.sh: - Add sort of variants. Request from @leptun - Add Arduino IDE 1.8.19 as an option - Allow upper and lower case. Request from @TojikCZ MK404-build.sh: - Allow upper and lower case. Request by @TojikCZ - Add update option to release OR devel --- MK404-build.sh | 84 +++++++++++++++++++++++++++++++++++--------------- PF-build.sh | 18 ++++++----- 2 files changed, 71 insertions(+), 31 deletions(-) diff --git a/MK404-build.sh b/MK404-build.sh index 4402a444..30f7eb61 100755 --- a/MK404-build.sh +++ b/MK404-build.sh @@ -10,7 +10,7 @@ # 3. Install latest updates with 'sudo apt-get upgrade' # # -# Version: 1.0.0-Build_13 +# Version: 1.0.0-Build_14 # Change log: # 11 Feb 2021, 3d-gussner, Inital # 11 Feb 2021, 3d-gussner, Optional flags to check for updates @@ -22,6 +22,8 @@ # 18 Jun 2021, 3d-gussner, Added -g 3 and 4 for more details extrusion lines # 18 Jun 2021, 3d-gussner, Check for updates is default. Fix update if internet connection is lost. # 21 Jun 2021, 3d-gussner, Change board_flash argument to 'y' and firmware_version to 'f' +# 25 Jan 2021, 3d-gussner, Allow upper and lower case in selection +# Add update option to release OR devel #### Start: Failures failures() @@ -74,7 +76,7 @@ while getopts c:f:g:m:n:p:u:x:y:?h flag # '?' 'h' argument usage and help if [ "$help_flag" == "1" ] ; then echo "***************************************" -echo "* MK404-build.sh Version: 1.0.0-Build_13 *" +echo "* MK404-build.sh Version: 1.0.0-Build_14 *" echo "***************************************" echo "Arguments:" echo "$(tput setaf 2)-c$(tput sgr0) Check for update" @@ -98,7 +100,7 @@ echo " -g : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' l echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" echo " -n : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes" echo " -p : '$(tput setaf 2)MK25$(tput sgr0)', '$(tput setaf 2)MK25S$(tput sgr0)', '$(tput setaf 2)MK3$(tput sgr0)' or '$(tput setaf 2)MK3S$(tput sgr0)'" -echo " -u : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '" +echo " -u : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' release ', '$(tput setaf 2)2$(tput sgr0)' devel '" echo " -x : '$(tput setaf 2)8$(tput sgr0)',$(tput setaf 2)16$(tput sgr0)',$(tput setaf 2)32$(tput sgr0)' or '$(tput setaf 2)64$(tput sgr0)' Kb." echo " -y : '$(tput setaf 2)256$(tput sgr0)','$(tput setaf 2)384$(tput sgr0)','$(tput setaf 2)512$(tput sgr0)','$(tput setaf 2)1024$(tput sgr0)''$(tput setaf 2)32M$(tput sgr0)'" echo @@ -170,9 +172,8 @@ fi #Start: Check if new build is selected if [ "$new_build_flag" == "1" ]; then check_flag=1 - update_flag=1 fi -if [ "$update_flag" == "1" ]; then +if [[ "$update_flag" == "1" || "$update_flag" == "2" ]]; then check_flag=1 fi #End: Check if new build is selected @@ -196,11 +197,13 @@ if [ ! -z $firmware_version_flag ]; then if [ ! -z $MK404_PRINTER_TEMP ]; then MK404_PRINTER=MK25S fi +elif [[ ! -z $new_build_flag || ! -z $update_flag || ! -z $check_flag ]]; then + echo "continue" else failures 8 fi -if [ -z "$MK404_PRINTER" ]; then +if [[ -z $MK404_PRINTER && -z $new_build_flag && -z $update_flag && -z $check_flag ]]; then failures 9 fi @@ -232,7 +235,7 @@ if [ ! -z $mk404_printer_flag ]; then fi fi -if [ -z $MK404_PRINTER ]; then +if [[ -z $MK404_PRINTER && -z $new_build_flag && -z $update_flag && -z $check_flag ]]; then failures 10 fi @@ -399,38 +402,58 @@ if [ "$check_flag" == "1" ]; then # Get latest release MK404_release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest) MK404_release_tag=$(basename $MK404_release_url) -# Get remote Commit_Hash - #MK404_remote_GIT_COMMIT_HASH=$(git ls-remote --heads $(git config --get remote.origin.url) | grep "refs/heads/master" | cut -f 1) - MK404_remote_GIT_COMMIT_HASH=$(git ls-remote | grep "refs/tags/$MK404_release_tag" | cut -f 1) -# Get remote Commit_Number - MK404_remote_GIT_COMMIT_NUMBER=$(git rev-list $MK404_release_tag --count) +# Get release Commit_Hash + MK404_release_GIT_COMMIT_HASH=$(git ls-remote | grep "refs/tags/$MK404_release_tag" | cut -f 1) +# Get release Commit_Number + MK404_release_GIT_COMMIT_NUMBER=$(git rev-list $MK404_release_tag --count) +# Get latest development Commit_Hash + MK404_devel_GIT_COMMIT_HASH=$(git for-each-ref refs/remotes/origin/master | cut -d" " -f 1) +# Get latest development Commit_Number + MK404_devel_GIT_COMMIT_NUMBER=$(git rev-list refs/remotes/origin/master --count) # Output echo "" echo "Current version : $MK404_current_version" echo "" echo "Current local hash : $MK404_local_GIT_COMMIT_HASH" echo "Current local commit nr : $MK404_local_GIT_COMMIT_NUMBER" - if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" ]; then echo "$(tput setaf 1)" else echo "$(tput setaf 2)" fi echo "Latest release tag : $MK404_release_tag" - echo "Latest release hash : $MK404_remote_GIT_COMMIT_HASH" - echo "Latest remote commit nr : $MK404_remote_GIT_COMMIT_NUMBER" + echo "Latest release hash : $MK404_release_GIT_COMMIT_HASH" + echo "Latest release commit nr: $MK404_release_GIT_COMMIT_NUMBER" + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" ]; then + echo "$(tput setaf 1)" + else + echo "$(tput setaf 2)" + fi + echo "Latest devel hash : $MK404_devel_GIT_COMMIT_HASH" + echo "Latest devel commit nr : $MK404_devel_GIT_COMMIT_NUMBER" echo "$(tput sgr 0)" # Check for updates - if [ ! -z $MK404_remote_GIT_COMMIT_HASH ]; then - if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then - echo "$(tput setaf 2)Update is availible.$(tput sgr 0)" - read -t 10 -n 1 -p "$(tput setaf 3)Update now Y/n$(tput sgr 0)" update_answer - if [ "$update_answer" == "Y" ]; then + if [ ! -z $MK404_release_GIT_COMMIT_HASH ]; then + if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then + echo "$(tput setaf 2)Update to release is availible.$(tput sgr 0)" + read -t 10 -n 1 -p "$(tput setaf 3)Update to release now Y/n$(tput sgr 0)" update_answer + if [[ "$update_answer" == "Y" || "$update_answer" == "y" ]]; then update_flag=1 fi echo "" fi fi + if [ ! -z $MK404_devel_GIT_COMMIT_HASH ]; then + if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then + echo "$(tput setaf 2)Update to devel is availible.$(tput sgr 0)" + read -t 10 -n 1 -p "$(tput setaf 3)Update to devel now Y/n$(tput sgr 0)" update_answer + if [[ "$update_answer" == "Y" || "$update_answer" == "y" ]]; then + update_flag=2 + fi + echo "" + fi + fi fi } #### End: Check for updates @@ -439,14 +462,27 @@ fi fetch_updates() { if [ "$update_flag" == "1" ]; then - if [ ! -z $MK404_remote_GIT_COMMIT_HASH ]; then - if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then + if [ ! -z $MK404_release_GIT_COMMIT_HASH ]; then + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" ]; then echo "" git fetch --all - read -t 10 -p "$(tput setaf 2)Updating MK404 !$(tput sgr 0)" + read -t 5 -p "$(tput setaf 2)Updating MK404 to release!$(tput sgr 0)" echo "" git reset --hard $MK404_release_tag - read -t 10 -p "$(tput setaf 2)Compiling MK404 !$(tput sgr 0)" + read -t 5 -p "$(tput setaf 2)Compiling MK404 release!$(tput sgr 0)" + echo "" + new_build_flag=1 + fi + fi +elif [ "$update_flag" == "2" ]; then + if [ ! -z $MK404_devel_GIT_COMMIT_HASH ]; then + if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" ]; then + echo "" + git fetch --all + read -t 5 -p "$(tput setaf 2)Updating MK404 to devel!$(tput sgr 0)" + echo "" + git reset --hard origin/master + read -t 5 -p "$(tput setaf 2)Compiling MK404 devel!$(tput sgr 0)" echo "" new_build_flag=1 fi diff --git a/PF-build.sh b/PF-build.sh index 8a96083d..296463d3 100755 --- a/PF-build.sh +++ b/PF-build.sh @@ -56,7 +56,7 @@ # Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE # it will use the default Arduino IDE folders and so can corrupt the build environment. # -# Version: 2.0.0-Build_66 +# Version: 2.0.0-Build_67 # Change log: # 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt' # 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown @@ -166,6 +166,9 @@ # 24 Jun 2021, 3d-gussner, Fix MK404 user interaction not to show if compiling 'All' variants # 24 Jun 2021, 3d-gussner, MK404 is only supported on Linux at this moment. # 03 Jan 2022, 3d-gussner, Remove calling lang-community.sh as not needed anymore +# 21 Jan 2022, 3d-gussner, Sort variants +# Add Arduino 1.8.19 as an option +# 25 Jan 2022, 3d-gussner, Allow upper and lower case for MK404 SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )" @@ -221,7 +224,7 @@ while getopts b:c:d:g:h:i:j:l:m:n:o:p:v:x:y:?h flag # '?' 'h' argument usage and help if [ "$help_flag" == "1" ] ; then echo "***************************************" -echo "* PF-build.sh Version: 2.0.0-Build_66 *" +echo "* PF-build.sh Version: 2.0.0-Build_67 *" echo "***************************************" echo "Arguments:" echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number" @@ -247,7 +250,7 @@ echo " -b : '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number" echo " -c : '$(tput setaf 2)0$(tput sgr0)' clean up, '$(tput setaf 2)1$(tput sgr0)' keep" echo " -d : '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'" echo " -g : '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy '$(tput setaf 2)3$(tput sgr0)' lite with Quad_HR '$(tput setaf 2)4$(tput sgr0)' fancy with Quad_HR" -echo " -i : '$(tput setaf 2)1.8.5$(tput sgr0)', '$(tput setaf 2)1.8.13$(tput sgr0)'" +echo " -i : '$(tput setaf 2)1.8.5$(tput sgr0)', '$(tput setaf 2)1.8.13$(tput sgr0)', '$(tput setaf 2)1.8.19$(tput sgr0)'" echo " -j : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes" echo " -l : '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only" echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2" @@ -343,7 +346,7 @@ fi #Start: Check if Arduino IDE version is correct if [ ! -z "$IDE_flag" ]; then - if [[ "$IDE_flag" == "1.8.5" || "$IDE_flag" == "1.8.13" ]]; then + if [[ "$IDE_flag" == "1.8.5" || "$IDE_flag" == "1.8.13" || "$IDE_flag" == "1.8.19" ]]; then ARDUINO_ENV="${IDE_flag}" else ARDUINO_ENV="1.8.5" @@ -818,7 +821,8 @@ if [ -z "$variant_flag" ] ; then while IFS= read -r -d $'\0' f; do options[i++]="$f" done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 ) - select opt in "${options[@]}" "All" "Quit"; do + IFS=$'\n' sorted=($(sort -n <<<"${options[*]}")); unset IFS + select opt in "${sorted[@]}" "All" "Quit"; do case $opt in *.h) VARIANT=$(basename "$opt" ".h") @@ -1453,7 +1457,7 @@ if [[ "$output_flag" == "1" || -z "$output_flag" ]]; then if [[ -z "$mk404_flag" && "$variant_flag" != "All" ]]; then echo read -t 10 -n 1 -p "Do you want to start MK404? Y/$(tput setaf 2)n$(tput sgr 0)" mk404_start - if [ "$mk404_start" == "Y" ]; then + if [[ "$mk404_start" == "Y" || "$mk404_start" == "y" ]]; then echo read -t 10 -n 1 -p "Do you want to start MK404 with or without MMU2S? $(tput setaf 2)1$(tput sgr 0)/2" mk404_choose1 if [ "$mk404_choose1" == "1" ]; then @@ -1603,4 +1607,4 @@ done finish_pf-build if [ $TARGET_OS == "linux" ]; then MK404_SIM -fi \ No newline at end of file +fi