Browse Source

Helpful output

bryan 3 years ago
parent
commit
ef2d69a1c3
1 changed files with 26 additions and 13 deletions
  1. 26 13
      installJRMC

+ 26 - 13
installJRMC

@@ -15,7 +15,7 @@
 
 shopt -s extglob
 
-_scriptversion="1.1.0"
+_scriptversion="1.0b1"
 _outputdir="$PWD/output"
 _createrepo_webroot="/srv/jriver"
 _exec_user="$(whoami)"
@@ -146,9 +146,15 @@ init() {
     # Install script dependencies
     [[ "$ID" == "centos" ]] && installPackage epel-release
 
-    [[ ! -v _mcversion ]] && getLatestVersion
+    if [[ -v _mcversion ]]; then
+        _version_source="user input"
+    else
+        getLatestVersion
+    fi
 
-    [[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && echo "Invalid version number" && exit 1
+    [[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1
+
+    debug "Using MC version $_mcversion determined by $_version_source"
 
     # Extract major version number
     _mversion="${_mcversion%%.*}"
@@ -157,7 +163,7 @@ init() {
     # _variation="${_mcversion##*.}"
 }
 
-
+# Some helper functions
 askOk() {
     local _response
     read -r -p "$* [y/N]" _response
@@ -291,13 +297,15 @@ parseInput() {
 }
 
 
+#######################################
+# Uses several methods to determine the latest JRiver MC version
+#######################################
 getLatestVersion() {
     debug "Running: ${FUNCNAME[0]}"
 
-    declare -g _mcversion _source
+    declare -g _mcversion
 
     # Use a containerized package manager
-    debug "Getting latest version using containerized apt"
     [[ ! -x $(command -v buildah) ]] && installPackage --silent buildah
     if [[ -x $(command -v buildah) ]] && CNT=$(buildah from ubuntu:18.04); then 
         buildah run "$CNT" -- bash -c \
@@ -305,12 +313,12 @@ getLatestVersion() {
         buildah run "$CNT" -- bash  -c \
             "apt-get update --allow-insecure-repositories -y > /dev/null 2>&1"
         if _mcversion=$(buildah run "$CNT" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1); then
-            _source="containerized package manager"
+            _version_source="containerized package manager"
         fi
         buildah rm "$CNT" > /dev/null 2>&1
     # Else scrape from Interact
     elif _mcversion=$(wget -qO- "$_boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then
-        _source="Interact scrape"
+        _version_source="webscrape"
     fi
 
     if ! [[ -v _mcversion ]]; then
@@ -871,7 +879,7 @@ setDisplay() {
 #######################################
 # Create associated service variables based on service name
 #######################################
-servicePrep() {
+setServiceVars() {
     debug "Running: ${FUNCNAME[0]}"
 
     if [[ "$_service_user" == "root" ]]; then
@@ -1145,11 +1153,16 @@ uninstall() {
     # Uninstall services
     echo "Stopping and removing all associated Media Center services"
     for _service in $(compgen -A "function" "service"); do 
-        servicePrep "$_service"
-        systemctl_disable "$_service_name"
-        systemctl_disable "$_timer_name"
+        setServiceVars "$_service"
+        if systemctl is-active "$_timer_name" || systemctl is-enabled "$_timer_name"; then 
+            systemctl_disable "$_timer_name"
+        fi
+        if systemctl is-active "$_service_name" || systemctl is-enabled "$_service_name"; then 
+            systemctl_disable "$_service_name"
+        fi
         [[ -f "$_service_fname" ]] && rm_cmd "$_service_fname"
         [[ -f "$_timer_fname" ]] && rm_cmd "$_timer_fname"
+        systemctl_reload
     done
 
     echo "Removing repo files"
@@ -1240,7 +1253,7 @@ main() {
     # Install services
     setDisplay
     for _service in "${_services[@]}"; do
-        servicePrep "$_service"
+        setServiceVars "$_service"
         if ! "service_$_service"; then
             if [[ $? -eq 127 ]]; then
                 err "Service $_service does not exist, check your service name"