#!/bin/bash #!/bin/bash clear me=`basename "$0"` echo echo echo scripting_rc_path=~/.config/EnlivenMinetest/scripting.rc if [ -f "$EM_CONFIG_PATH/scripting.rc" ]; then echo "* [$MT_ENV_RUP_NAME] using $scripting_rc_path..." source $scripting_rc_path fi if [ -z "$REPO_PATH" ]; then REPO_PATH="$HOME/git/EnlivenMinetest" fi MT_BASH_RC_NAME="minetestenv-in-place.rc" CURRENT_MT_SCRIPTS_DIR="$HOME/.local/bin" MT_BASH_RC_PATH="$CURRENT_MT_SCRIPTS_DIR/$MT_BASH_RC_NAME" TRY_CURRENT_MT_SCRIPTS_DIR="$REPO_PATH" TRY_MT_BASH_RC_PATH="$TRY_CURRENT_MT_SCRIPTS_DIR/$MT_BASH_RC_NAME" if [ -f "$TRY_MT_BASH_RC_PATH" ]; then CURRENT_MT_SCRIPTS_DIR="$TRY_CURRENT_MT_SCRIPTS_DIR" MT_BASH_RC_PATH="$TRY_MT_BASH_RC_PATH" #fi #if [ ! -f "$MT_BASH_RC_PATH" ]; then else if [ ! -d "$CURRENT_MT_SCRIPTS_DIR" ]; then mkdir -p "$CURRENT_MT_SCRIPTS_DIR" fi MT_BASH_RC_URL=https://raw.githubusercontent.com/poikilos/EnlivenMinetest/master/$MT_BASH_RC_NAME curl $MT_BASH_RC_URL -o "$MT_BASH_RC_PATH" if [ $? -ne 0 ]; then #if [ ! -f "$MT_BASH_RC_PATH" ]; then # This is necessary on cygwin for some reason. curl $MT_BASH_RC_URL > "$MT_BASH_RC_PATH" fi #if [ $? -ne 0 ]; then if [ ! -f "$MT_BASH_RC_PATH" ]; then # This is necessary on cygwin for some reason. wget -O "$MT_BASH_RC_PATH" $MT_BASH_RC_URL fi if [ $? -ne 0 ]; then echo echo "ERROR: Downloading $MT_BASH_RC_URL to $MT_BASH_RC_PATH failed." echo sleep 10 exit 1 fi fi if [ ! -f "$MT_BASH_RC_PATH" ]; then echo echo "$MT_BASH_RC_PATH is not present." echo sleep 10 exit 1 fi source $MT_BASH_RC_PATH # ^ same as install-mts.sh, update-minetest-linux64.sh echo echo "Collecting version..." EM_CONFIG_PATH=$HOME/.config/EnlivenMinetest cd "$EM_CONFIG_PATH" || customExit "[versionize.sh] cd \"$EM_CONFIG_PATH\" failed." if [ -z "$original_src_path" ]; then original_src_path="$1" fi if [ -z "$original_src_path" ]; then if [ -f "linux-minetest-kit.zip" ]; then original_src_path="linux-minetest-kit.zip" echo "* no script argument, so using linux-minetest-kit.zip" else echo "* original_src_path (linux-minetest-kit.zip) not detected" fi fi if [ -z "$original_src_path" ]; then echo "You must specify a zip file path OR directory path." exit 1 fi customWarn() { cat < /dev/tty0 # beep (You must specify a tty path if not in console mode) echo "Press Ctrl+C to cancel..." sleep 1 echo -en "\a" > /dev/tty0 echo "3..." sleep 1 echo -en "\a" > /dev/tty0 echo "2..." sleep 1 echo -en "\a" > /dev/tty0 echo "1..." sleep 1 } customExit() { echo echo "ERROR:" echo " $1" echo echo exit 1 } destroy_msg="" # src_path: extracted name (always linux-mintetest-kit unless source is # archive, in which case src_path is detected) src_path="$EM_CONFIG_PATH/linux-minetest-kit" versions_path="$EM_CONFIG_PATH/minetest-versions" if [ ! -d "$versions_path" ]; then mkdir -p "$versions_path" || customExit "mkdir $versions_path FAILED" fi src_name="" try_path="$EM_CONFIG_PATH/$original_src_path" if [ -f "$original_src_path" ]; then echo "* detected file param..." elif [ -d "$original_src_path" ]; then echo "* detected directory param..." else customExit "$original_src_path is not a file or directory." fi cd /tmp || customExit "cannot cd to /tmp" if [ -d versionize ]; then rm -Rf versionize || customExit "cannot remove /tmp/versionize" fi mkdir versionize || customExit "cannot create /tmp/versionize" cd /tmp/versionize || customExit "cannot cd /tmp/versionize" if [ -f "$original_src_path" ]; then echo "* detected archive file full path..." try_path="$original_src_path" elif [ -d "$original_src_path" ]; then echo "* detected directory full path..." try_path="$original_src_path" fi src_archive= if [ -f "$try_path" ]; then src_archive="$try_path" echo "* set src_archive to '$try_path'" unzip "$try_path" src_name="`ls`" if [ ! -d "$src_name" ]; then customExit "unzip $try_path did not result in a directory!" fi src_path="`pwd`/$src_name" destroy_msg=" (but will be destroyed on next run)" if [ ! -d "$src_path" ]; then customExit "$src_path from unzip $try_path is not a directory!" fi elif [ -d "$try_path" ]; then src_path="$try_path" src_name="`basename $src_path`" else customExit "$try_path is not a file or directory." fi KIT_RELEASE_TXT=$src_path/release.txt BIN_RELEASE_TXT=$src_path/minetest/release.txt if [ ! -f "$BIN_RELEASE_TXT" ]; then if [ -f "$KIT_RELEASE_TXT" ]; then # This is expected to occur since we only now unzipped it. #if [ -d "BIN_RELEASE_TXT=$src_path/minetest" ]; then cp "$KIT_RELEASE_TXT" "$BIN_RELEASE_TXT" #fi fi fi detect_mt_version_at "$src_path" if [ -z "$new_release_version" ]; then detect_mt_version_at "$src_path/minetest" fi # ^ DOES exit if no 6-digit version is detected when no 3rd param # is provided. if [ -z "$new_release_version" ]; then echo "new_release_version from $src_path/minetest is blank." exit 1 fi echo "src_name=$src_name" echo "src_path=$src_path" echo "new_release_version=$new_release_version" # dest_path="$versions_path/$src_name-$new_release_version" dest_path="$versions_path/linux-minetest-kit-$new_release_version" echo "dest_path=$dest_path" if [ ! -z "$src_archive" ]; then echo "* Collecting src_archive '$src_archive'" # The effectiveness of any bash extension extraction is debatable-- # see # filename=$(basename -- "$src_archive") extension="${filename##*.}" filename="${filename%.*}" dst_archive="$versions_path/$filename-$new_release_version.$extension" if [ -f "$dst_archive" ]; then customWarn "This will overwrite '$dst_archive' with '$src_archive'." fi if [ -f "$src_archive" ]; then mv "$src_archive" "$dst_archive" || customExit "Cannot mv '$src_archive' '$dst_archive'" echo "* moved archive to '$dst_archive'" echo echo else echo "* ERROR: '$src_archive' is not accessible from `pwd`--" echo " skipping:" echo " mv '$src_archive' '$dst_archive'" echo echo fi else echo "* There is no src_archive to collect." fi if [ -d "$dest_path" ]; then echo echo "There is nothing to do. Directory $dest_path exists." echo "* '$src_path' remains$destroy_msg." echo echo exit 0 fi mv "$src_path" "$dest_path" || customExit "Failed to move to 'dest_path'" echo echo "Done $0." echo echo