Use a variable for fallback mcversion

This commit is contained in:
2022-10-12 13:02:37 -04:00
parent 5e70364ec9
commit e1e0a55101

View File

@@ -21,7 +21,7 @@ declare -g OUTPUTDIR="$PWD/output"
declare -g BOARDURL="https://yabb.jriver.com/interact/index.php/board,76.0.html" # MC30 (Buster) declare -g BOARDURL="https://yabb.jriver.com/interact/index.php/board,76.0.html" # MC30 (Buster)
declare -g DEBIANBASE="buster" declare -g DEBIANBASE="buster"
# declare -g DEBIANBASE_NEXT="bullseye" declare -g MCVERSION_HARDCODE="30.0.17" # Hardcoded fallback
declare -g CREATEREPO_WEBROOT="/var/www/jriver" declare -g CREATEREPO_WEBROOT="/var/www/jriver"
declare -g USER="${SUDO_USER:-$USER}" declare -g USER="${SUDO_USER:-$USER}"
@@ -46,7 +46,7 @@ printHelp() {
--compat --compat
Build/install MC locally without minimum library specifiers Build/install MC locally without minimum library specifiers
--mcversion VERSION --mcversion VERSION
Specify the MC version, ex. "30.0.17" (Default: latest) Specify the MC version, ex. "30.0.17" (Default: latest version)
--outputdir PATH --outputdir PATH
Generate rpmbuild output in this directory (Default: ./output) Generate rpmbuild output in this directory (Default: ./output)
--restorefile RESTOREFILE --restorefile RESTOREFILE
@@ -163,7 +163,7 @@ parseInput() {
shift && OUTPUTDIR="$1" shift && OUTPUTDIR="$1"
;; ;;
--mcversion) --mcversion)
shift && MCVERSION="$1" shift && declare -g MCVERSION_INPUT="$1"
;; ;;
--restorefile) --restorefile)
shift && RESTOREFILE="$1" shift && RESTOREFILE="$1"
@@ -334,14 +334,20 @@ init() {
# Uses several methods to determine the latest JRiver MC version # Uses several methods to determine the latest JRiver MC version
# TODO but how to determine build distro `$DEBIANBASE=buster`? # TODO but how to determine build distro `$DEBIANBASE=buster`?
####################################### #######################################
getVersion() { setMCVersion() {
debug "Running: ${FUNCNAME[0]}" debug "Running: ${FUNCNAME[0]}"
declare -g MCVERSION VERSION_SOURCE MVERSION MCPKG MCRPM declare -g MCVERSION MCVERSION_SOURCE MVERSION MCPKG MCRPM
declare cnt
# User input # User input
if [[ -v MCVERSION && "$MCVERSION" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then if [[ -v MCVERSION_INPUT ]]; then
VERSION_SOURCE="user input" if ! [[ "$MCVERSION_INPUT" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
err "Incorrect --mcversion format provided"
printHelp && exit 1
fi
MCVERSION="$MCVERSION_INPUT"
MCVERSION_SOURCE="user input"
# Containerized package manager # Containerized package manager
elif installPackage --silent buildah && elif installPackage --silent buildah &&
cnt=$(buildah from --quiet debian:$DEBIANBASE) &>/dev/null && cnt=$(buildah from --quiet debian:$DEBIANBASE) &>/dev/null &&
@@ -350,32 +356,31 @@ getVersion() {
buildah run "$cnt" -- bash -c \ buildah run "$cnt" -- bash -c \
"apt update --allow-insecure-repositories &>/dev/null" &>/dev/null && "apt update --allow-insecure-repositories &>/dev/null" &>/dev/null &&
MCVERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null && MCVERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null &&
[[ "$MCVERSION" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && [[ "$MCVERSION" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
VERSION_SOURCE="containerized package manager"; then MCVERSION_SOURCE="containerized package manager"
buildah rm "$cnt" &>/dev/null buildah rm "$cnt" &>/dev/null
# Webscrape # Webscrape
elif installPackage wget && MCVERSION=$(wget -qO- "$BOARDURL" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1) && elif installPackage wget && MCVERSION=$(wget -qO- "$BOARDURL" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1) &&
[[ "$MCVERSION" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then [[ "$MCVERSION" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
VERSION_SOURCE="webscrape" MCVERSION_SOURCE="webscrape"
# Hardcoded # Hardcoded
else else
MCVERSION="30.0.17" MCVERSION="$MCVERSION_HARDCODE"
VERSION_SOURCE="hardcoded version" MCVERSION_SOURCE="hardcoded version"
err "Warning! Using hardcoded version number" err "Warning! Using hardcoded version number."
fi fi
MVERSION="${MCVERSION%%.*}" MVERSION="${MCVERSION%%.*}"
MCPKG="mediacenter$MVERSION" MCPKG="mediacenter$MVERSION"
MCRPM="$OUTPUTDIR/RPMS/x86_64/mediacenter$MVERSION-$MCVERSION.x86_64.rpm" MCRPM="$OUTPUTDIR/RPMS/x86_64/mediacenter$MVERSION-$MCVERSION.x86_64.rpm"
if [[ "$VERSION_SOURCE" == "user input" ]]; then if [[ "$MCVERSION_SOURCE" == "user input" ]]; then
# Append explicit package version when user provides --mcversion # Append explicit package version when user provides --mcversion
[[ "$ID" =~ ^(fedora|centos|suse)$ ]] && MCPKG+="-$MCVERSION" [[ "$ID" =~ ^(fedora|centos|suse)$ ]] && MCPKG+="-$MCVERSION"
[[ "$ID" =~ ^(debian|ubuntu)$ ]] && MCPKG+="=$MCVERSION" [[ "$ID" =~ ^(debian|ubuntu)$ ]] && MCPKG+="=$MCVERSION"
else
echo "To override, use --mcversion"
fi fi
echo "Using MC version $MCVERSION determined by $VERSION_SOURCE" echo "Using MC version $MCVERSION determined by $MCVERSION_SOURCE."
[[ "$MCVERSION_SOURCE" == "user input" ]] || echo "To override, use --mcversion."
debug "MVERSION: $MVERSION, MCVERSION: $MCVERSION, MCPKG: $MCPKG, MCRPM: $MCRPM" debug "MVERSION: $MVERSION, MCVERSION: $MCVERSION, MCPKG: $MCPKG, MCRPM: $MCRPM"
} }
@@ -1557,7 +1562,7 @@ main() {
exit exit
fi fi
getVersion setMCVersion
if (( UNINSTALL_SWITCH )); then if (( UNINSTALL_SWITCH )); then
if askOk "Do you really want to uninstall JRiver Media Center?"; then if askOk "Do you really want to uninstall JRiver Media Center?"; then