Pārlūkot izejas kodu

Refactor setMCVersion()

bryan 5 mēneši atpakaļ
vecāks
revīzija
dd2838dbb2
1 mainītis faili ar 31 papildinājumiem un 30 dzēšanām
  1. 31 30
      installJRMC

+ 31 - 30
installJRMC

@@ -18,7 +18,7 @@ shopt -s extglob
 
 declare -g SCRIPTVERSION="1.0-dev"
 declare -g BOARDURL="https://yabb.jriver.com/interact/index.php/board,83.0.html" # MC32
-declare -g MC_VERSION_HARDCODE="32.0.45" # Do find all replace
+declare -g MC_VERSION="32.0.45" # Do find all replace
 
 printHelp() {
     debug "Running: ${FUNCNAME[0]}"
@@ -259,7 +259,7 @@ parseInput() {
 
     declare -g BUILD_SWITCH REPO_INSTALL_SWITCH COMPAT_SWITCH TEST_SWITCH
     declare -g LOCAL_INSTALL_SWITCH CREATEREPO_SWITCH UNINSTALL_SWITCH
-    declare -g YES_SWITCH USER_VERSION_SWITCH USER_ARCH
+    declare -g YES_SWITCH USER_MC_VERSION USER_ARCH
     declare -g RESTOREFILE BETAPASS SERVICE_TYPE
     declare -g VNCPASS USER_DISPLAY
     declare -ga SERVICES CONTAINERS
@@ -320,8 +320,13 @@ parseInput() {
                     ;;
                 --mcversion)
                     shift
-                    MC_VERSION="$1"
-                    USER_VERSION_SWITCH=1
+                    if [[ $1 =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
+                        USER_MC_VERSION="$1"
+                    else
+                        err "Bad --mcversion"
+                        printHelp
+                        exit 1
+                    fi
                     ;;
                 --arch)
                     shift && USER_ARCH="$1"
@@ -406,40 +411,36 @@ parseInput() {
 setMCVersion() {
     debug "Running: ${FUNCNAME[0]}"
 
-    declare -g MC_VERSION_SOURCE MC_MVERSION MC_ROOT MC_REPO
-    declare -g MC_PKG MC_RPM MC_STUB MC_STUB_TARGET
+    declare -g MC_VERSION_SOURCE
     declare cnt
 
     # User input
-    if (( USER_VERSION_SWITCH )) &&
-    [[ $MC_VERSION =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
+    if [[ -n $USER_MC_VERSION ]]; then
         MC_VERSION_SOURCE="user input"
+        MC_VERSION="$USER_MC_VERSION"
     # Containerized package manager
+    elif installPackage --silent buildah &&
+    cnt=$(buildah from --quiet debian:stable-slim) &>/dev/null &&
+    buildah run "$cnt" -- bash -c \
+        "echo 'deb [trusted=no arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $MC_REPO main' > /etc/apt/sources.list 2>&1" &>/dev/null &&
+    buildah run "$cnt" -- bash  -c \
+        "apt update --allow-insecure-repositories &>/dev/null" &>/dev/null &&
+    MC_VERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null &&
+    [[ $MC_VERSION =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
+        MC_VERSION_SOURCE="containerized package manager"
+        execute buildah rm "$cnt"
+    # Webscrape
+    elif installPackage --silent wget &&
+    MC_VERSION=$(wget -qO- "$BOARDURL" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1) &&
+    [[ $MC_VERSION =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
+        MC_VERSION_SOURCE="webscrape"
+    # Hardcoded
     else
-        echo "Determining latest MC version"
-        if installPackage --silent buildah &&
-        hash buildah &>/dev/null &&
-        cnt=$(buildah from debian:stable-slim) &&
-        buildah run "$cnt" -- bash -c \
-            "echo 'deb [trusted=no arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $MC_REPO main' > /etc/apt/sources.list 2>&1" &>/dev/null &&
-        buildah run "$cnt" -- bash  -c \
-            "apt update --allow-insecure-repositories &>/dev/null" &>/dev/null &&
-        MC_VERSION=$(buildah run "$cnt" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) &>/dev/null &&
-        [[ $MC_VERSION =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
-            MC_VERSION_SOURCE="containerized package manager"
-            execute buildah rm "$cnt"
-        # Webscrape
-        elif installPackage wget && MC_VERSION=$(wget -qO- "$BOARDURL" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1) &&
-        [[ $MC_VERSION =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then
-            MC_VERSION_SOURCE="webscrape"
-        # Hardcoded
-        else
-            declare -g MC_VERSION="$MC_VERSION_HARDCODE"
-            MC_VERSION_SOURCE="hardcoded or MC_VERSION env"
-            err "Warning! Using hardcoded version number"
-        fi
+        MC_VERSION_SOURCE="hardcoded"
+        err "Warning! Using hardcoded version number"
     fi
     
+    # Set major vresion var
     MC_MVERSION="${MC_VERSION%%.*}"
 
     # Set the appropriate MC repo to use based on the major version number