From ef2d69a1c372ed353b4ae6652e5092dc746751e4 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 24 Nov 2021 14:52:21 -0500 Subject: [PATCH] Helpful output --- installJRMC | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/installJRMC b/installJRMC index 2a0e12a..186b73a 100755 --- a/installJRMC +++ b/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"