diff --git a/installJRMC b/installJRMC index 84f338d..3cf490d 100755 --- a/installJRMC +++ b/installJRMC @@ -27,7 +27,7 @@ _exec_user=$(whoami) _systemddir="/usr/lib/systemd/system" # MC version -# _mcversion="28.0.87" # to set manually, if unset use automatic latest check +# mcversion="28.0.87" # to set manually, if unset use automatic latest check printHelp() { debug "Running: ${FUNCNAME[0]}" @@ -167,21 +167,21 @@ init() { [[ "$ID" == "centos" ]] && installPackage epel-release # Select MC version to work with - if [[ -v _mcversion ]]; then + if [[ -v mcversion ]]; then _version_source="user input" else getLatestVersion fi - [[ ! "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1 + [[ ! "$mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]] && err "Invalid version number" && exit 1 - echo "Using MC version $_mcversion determined by $_version_source" + echo "Using MC version $mcversion determined by $_version_source" [[ "$_version_source" != "user input" ]] && echo "To override, use --mcversion" # Extract major version number - _mversion="${_mcversion%%.*}" + _mversion="${mcversion%%.*}" # Saving this substituion in case it's needed in the future - # _variation="${_mcversion##*.}" + # _variation="${mcversion##*.}" } # Some helper functions @@ -264,7 +264,7 @@ parseInput() { shift && _outputdir="$1" ;; --mcversion) - shift && _mcversion="$1" + shift && mcversion="$1" ;; --restorefile) shift && _restorefile="$1" @@ -344,15 +344,15 @@ parseInput() { getLatestVersion() { debug "Running: ${FUNCNAME[0]}" - declare -g _mcversion + declare -g mcversion base boardurl # Latest defaults - _base="buster" # For container method - _boardurl="https://yabb.jriver.com/interact/index.php/board,71.0.html" # MC28 (Buster), for fallback webscrape - #_base_next="bullseye" # TODO use for fallback to smooth upgrades + base="buster" # For container method + boardurl="https://yabb.jriver.com/interact/index.php/board,71.0.html" # MC28 (Buster), for fallback webscrape + #base_next="bullseye" # TODO use for fallback to smooth upgrades # Legacy - #_boardurl26="https://yabb.jriver.com/interact/index.php/board,64.0.html" # jessie/stretch + #boardurl26="https://yabb.jriver.com/interact/index.php/board,64.0.html" # jessie/stretch # Peg older versions to prevent ABI and dependency mismatches in automatic mode # This can be overriden w/ --mcversion @@ -361,42 +361,42 @@ getLatestVersion() { # if [[ -v _install ]]; then # if [[ "$ID" == "ubuntu" ]]; then # # [[ "$VERSION_CODENAME" =~ ^(focal|groovy|hirsute|impish)$ ]] && \ - # # _base="bullseye" + # # base="bullseye" # [[ "$VERSION_CODENAME" =~ ^(cosmic|disco|eoan)$ ]] && \ - # _base="buster" + # base="buster" # [[ "$VERSION_CODENAME" =~ ^(xenial|yakkety|zesty|artful|bionic)$ ]] && \ - # _mcversion="26.0.107" + # mcversion="26.0.107" # [[ "$VERSION_CODENAME" =~ ^(trusty|utopic|vivid|wily)$ ]] && \ - # _mcversion="26.0.107" + # mcversion="26.0.107" # elif [[ "$ID" == "debian" ]]; then - # _base="$VERSION_CODENAME" + # base="$VERSION_CODENAME" # [[ $VERSION_ID -eq 10 ]] && \ - # _base="buster" + # base="buster" # [[ $VERSION_ID -le 9 ]] && \ - # _mcversion="26.0.107" # For 9 and 8 + # mcversion="26.0.107" # For 9 and 8 # elif [[ "$ID" == "centos" ]]; then # [[ "$VERSION_ID" -eq "8" ]] && \ - # _base="buster" + # base="buster" # [[ "$VERSION_ID" -lt "8" ]] && \ - # _mcversion="26.0.107" # Doubtful + # mcversion="26.0.107" # Doubtful # fi - # [[ -v _mcversion ]] && \ + # [[ -v mcversion ]] && \ # _version_source="compatibility lookup" && \ # debug "To override, use --mcversion" && \ # return 0 # fi # Use a containerized package manager - # TODO but how to determine build distro ($_base=buster)? + # TODO but how to determine build distro ($base=buster)? installPackage --silent buildah - if [[ -x $(command -v buildah) ]] && CNT=$(buildah from debian:$_base); then + if [[ -x $(command -v buildah) ]] && CNT=$(buildah from debian:$base); then buildah run "$CNT" -- bash -c \ - "echo 'deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $_base main' > /etc/apt/sources.list 2>&1" + "echo 'deb [trusted=yes arch=amd64,i386,armhf,arm64] http://dist.jriver.com/latest/mediacenter/ $base main' > /etc/apt/sources.list 2>&1" 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) \ - && [[ "$_mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then + if mcversion=$(buildah run "$CNT" -- apt-cache policy mediacenter?? | grep Candidate | awk '{print $2}' | sort -V | tail -n1) \ + && [[ "$mcversion" =~ ([0-9]+.[0-9]+.[0-9]+) ]]; then _version_source="containerized package manager" buildah rm "$CNT" > /dev/null 2>&1 return 0 @@ -405,12 +405,12 @@ getLatestVersion() { fi # Scrape from Interact installPackage wget - if _mcversion=$(wget -qO- "$_boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then + if mcversion=$(wget -qO- "$boardurl" | grep -o "[0-9][0-9]\.[0-9]\.[0-9]\+" | head -n 1); then _version_source="webscrape" fi - if ! [[ -v _mcversion ]]; then - err "MC version could not be determined. Please check the boardurl: $_boardurl or specify a version manually using --mcversion" + if ! [[ -v mcversion ]]; then + err "MC version could not be determined. Please check the boardurl: $boardurl or specify a version manually using --mcversion" exit 1 fi } @@ -506,7 +506,7 @@ addRepo() { gpgcheck=0 EOF' elif [[ "$ID" =~ ^(debian|ubuntu|linuxmint)$ ]]; then - # _mversion will depend on _base unless --mcversion is passed + # _mversion will depend on base unless --mcversion is passed installPackage wget wget -q "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" -O- | ifSudo apt-key add - > /dev/null 2>&1 ifSudo wget "http://dist.jriver.com/latest/mediacenter/mediacenter$_mversion.list" -O "/etc/apt/sources.list.d/mediacenter$_mversion.list" > /dev/null 2>&1 @@ -524,7 +524,7 @@ installMCFromRepo() { local _mcpkg - echo "Installing JRiver Media Center $_mcversion from repository." + echo "Installing JRiver Media Center $mcversion from repository." echo "Future updates will be handled by your package manager." if ! debug; then @@ -549,9 +549,9 @@ installMCFromRepo() { if [[ -v _specific_version ]]; then if [[ "$ID" =~ ^(fedora|centos|opensuse.*)$ ]]; then - _mcpkg="$_mcpkg-$_mcversion" + _mcpkg="$_mcpkg-$mcversion" elif [[ "$ID" =~ ^(debian|ubuntu|linuxmint)$ ]]; then - _mcpkg="$_mcpkg=$_mcversion" + _mcpkg="$_mcpkg=$mcversion" fi fi @@ -573,7 +573,7 @@ acquireDeb() { debug "Running: ${FUNCNAME[0]}" declare -g DEBFILENAME - DEBFILENAME="$_outputdir/SOURCES/MediaCenter-$_mcversion-amd64.deb" + DEBFILENAME="$_outputdir/SOURCES/MediaCenter-$mcversion-amd64.deb" # If necessary, create SOURCES dir [[ ! -d "$_outputdir/SOURCES" ]] && mkdir -p "$_outputdir/SOURCES" @@ -584,15 +584,15 @@ acquireDeb() { elif [[ -v _betapass ]]; then echo "Checking beta repo..." if wget -q -O "$DEBFILENAME" \ - "https://files.jriver.com/mediacenter/channels/v$_mversion/beta/$_betapass/MediaCenter-$_mcversion-amd64.deb"; then + "https://files.jriver.com/mediacenter/channels/v$_mversion/beta/$_betapass/MediaCenter-$mcversion-amd64.deb"; then echo "Found!" fi elif echo "Checking test repo..." && wget -q -O "$DEBFILENAME" \ - "https://files.jriver.com/mediacenter/test/MediaCenter-$_mcversion-amd64.deb"; then + "https://files.jriver.com/mediacenter/test/MediaCenter-$mcversion-amd64.deb"; then echo "Found!" # Else check latest repo elif echo "Checking latest repo..." && wget -q -O "$DEBFILENAME" \ - "https://files.jriver.com/mediacenter/channels/v$_mversion/latest/MediaCenter-$_mcversion-amd64.deb"; then + "https://files.jriver.com/mediacenter/channels/v$_mversion/latest/MediaCenter-$mcversion-amd64.deb"; then echo "Found!" else err "Cannot find DEB file." @@ -706,7 +706,7 @@ buildRPM() { local _ec - declare -g _mcrpm="$_outputdir/RPMS/x86_64/MediaCenter-$_mcversion.x86_64.rpm" + declare -g _mcrpm="$_outputdir/RPMS/x86_64/MediaCenter-$mcversion.x86_64.rpm" # skip rebuilding the rpm if it already exists if [[ -f "$_mcrpm" ]]; then @@ -724,11 +724,11 @@ buildRPM() { # Create spec file cat <<- EOF > "$_outputdir/SPECS/mediacenter.spec" Name: MediaCenter - Version: $_mcversion + Version: $mcversion Release: 1 Summary: JRiver Media Center Group: Applications/Media - Source0: http://files.jriver.com/mediacenter/channels/v$_mversion/latest/MediaCenter-$_mcversion-amd64.deb + Source0: http://files.jriver.com/mediacenter/channels/v$_mversion/latest/MediaCenter-$mcversion-amd64.deb BuildArch: x86_64 %define _rpmfilename %%{ARCH}/%%{NAME}-%%{version}.%%{ARCH}.rpm @@ -767,7 +767,7 @@ buildRPM() { EOF # Run rpmbuild - echo "Building version $_mcversion, please wait..." + echo "Building version $mcversion, please wait..." if debug; then rpmbuild --define="%_topdir $_outputdir" --define="%_libdir /usr/lib" -bb "$_outputdir/SPECS/mediacenter.spec" @@ -1233,7 +1233,7 @@ service_jriver-createrepo() { # installPackage buildah podman # # Eventually try to switch to Debian -# # if ! CNT=$(buildah from debian:$_base); then +# # if ! CNT=$(buildah from debian:$base); then # # echo "Bad base image for container $CNAME, skipping" # # continue # # fi