From fd540b03255ade2db38163fb70e1554f198b8219 Mon Sep 17 00:00:00 2001 From: Alex Malinovich Date: Thu, 19 Apr 2018 21:45:12 -0700 Subject: [PATCH] Move all distro checking logic to plexupdate-core --- extras/.installer.sh.swp | Bin 0 -> 24576 bytes extras/installer.sh | 19 +------------------ plexupdate-core | 30 ++++++++++++++++++++++++------ plexupdate.sh | 23 +++++++---------------- 4 files changed, 32 insertions(+), 40 deletions(-) create mode 100644 extras/.installer.sh.swp diff --git a/extras/.installer.sh.swp b/extras/.installer.sh.swp new file mode 100644 index 0000000000000000000000000000000000000000..9562561962079577c069004b8bcf197efb0583e9 GIT binary patch literal 24576 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 I+SgV73)=WkkN^Mx literal 0 HcmV?d00001 diff --git a/extras/installer.sh b/extras/installer.sh index 712555b..b94bbae 100755 --- a/extras/installer.sh +++ b/extras/installer.sh @@ -34,6 +34,7 @@ install() { sleep 1 [ -z "$DISTRO_INSTALL" ] && check_distro + DISTRO_INSTALL="${DISTRO_INSTALL} install" if [ $EUID -ne 0 ]; then sudo $DISTRO_INSTALL $1 || abort "Failed while trying to install '$1'. Please install it manually and try again." @@ -42,24 +43,6 @@ install() { fi } -check_distro() { - if [ -f /etc/redhat-release ] && hash dnf 2>/dev/null; then - DISTRO="redhat" - DISTRO_INSTALL="dnf -y install" - elif [ -f /etc/redhat-release ] && hash yum 2>/dev/null; then - DISTRO="redhat" #or CentOS but functionally the same - DISTRO_INSTALL="yum -y install" - elif hash apt 2>/dev/null; then - DISTRO="debian" #or Ubuntu - DISTRO_INSTALL="apt install" - elif hash apt-get 2>/dev/null; then - DISTRO="debian" - DISTRO_INSTALL="apt-get install" - else - DISTRO="unknown" - fi -} - yesno() { case "$1" in "") diff --git a/plexupdate-core b/plexupdate-core index 334e909..aea1ff5 100755 --- a/plexupdate-core +++ b/plexupdate-core @@ -12,10 +12,6 @@ URL_LOGIN='https://plex.tv/users/sign_in.json' URL_DOWNLOAD='https://plex.tv/api/downloads/1.json?channel=plexpass' URL_DOWNLOAD_PUBLIC='https://plex.tv/api/downloads/1.json' - -# Default options for package managers, override if needed -REDHAT_INSTALL="dnf -y install" -DEBIAN_INSTALL="dpkg -i" DISTRO_INSTALL="" #URL for new version check @@ -176,6 +172,28 @@ getLocalSHA() { sha1sum "$1" | cut -f1 -d" " } +check_distro() { + if hash dnf 2>/dev/null; then + DISTRO=redhat + DISTRO_INSTALL="dnf -y" + elif hash yum 2>/dev/null; then + DISTRO=redhat + DISTRO_INSTALL="yum -y" + elif hash zypper 2>/dev/null; then + DISTRO=redhat + DISTRO_INSTALL="zypper -y" + elif hash apt 2>/dev/null; then + DISTRO=ubuntu + DISTRO_INSTALL="apt" + elif hash apt-get 2>/dev/null; then + DISTRO=ubuntu + DISTRO_INSTALL="apt-get -y" + else + error "Unable to determine distribution, aborting." + exit 1 + fi +} + # RNNG running() { # If a server is unclaimed, it probably doesn't have TLS enabled either @@ -226,7 +244,7 @@ isNewerVersion() { } parseVersion() { - if [ "${REDHAT}" = "yes" ]; then + if [ "${DISTRO}" = "redhat" ]; then cut -f2- -d- <<< "$1" | cut -f1-4 -d. else cut -f2 -d_ <<< "$1" @@ -234,7 +252,7 @@ parseVersion() { } getPlexVersion() { - if [ "${REDHAT}" != "yes" ]; then + if [ "${DISTRO}" != "redhat" ]; then dpkg-query --showformat='${Version}' --show plexmediaserver 2>/dev/null elif hash rpm 2>/dev/null; then local rpmtemp diff --git a/plexupdate.sh b/plexupdate.sh index c9d46ca..7eff8ea 100755 --- a/plexupdate.sh +++ b/plexupdate.sh @@ -297,21 +297,12 @@ fi if [ -z "${DISTRO_INSTALL}" ]; then if [ -z "${DISTRO}" -a -z "${BUILD}" ]; then - # Detect if we're running on redhat instead of ubuntu - if [ -f /etc/redhat-release ]; then - REDHAT=yes - BUILD="linux-ubuntu-${ARCH}" - DISTRO="redhat" - if ! hash dnf 2>/dev/null; then - DISTRO_INSTALL="${REDHAT_INSTALL/dnf/yum}" - else - DISTRO_INSTALL="${REDHAT_INSTALL}" - fi + check_distro + BUILD="linux-ubuntu-${ARCH}" + if [ "${FORCE}" = "yes" ]; then + DISTRO_INSTALL="${DISTRO INSTALL} reinstall" else - REDHAT=no - BUILD="linux-ubuntu-${ARCH}" - DISTRO="ubuntu" - DISTRO_INSTALL="${DEBIAN_INSTALL}" + DISTRO_INSTALL="${DISTRO_INSTALL} install" fi elif [ -z "${DISTRO}" -o -z "${BUILD}" ]; then error "You must define both DISTRO and BUILD" @@ -428,7 +419,7 @@ INSTALLED_VERSION="$(getPlexVersion)" || warn "Unable to detect installed versio FILE_VERSION="$(parseVersion "${FILENAME}")" verboseOutput INSTALLED_VERSION FILE_VERSION -if [ "${REDHAT}" = "yes" -a "${AUTOINSTALL}" = "yes" -a "${AUTOSTART}" = "no" ]; then +if [ "${DISTRO}" = "redhat" -a "${AUTOINSTALL}" = "yes" -a "${AUTOSTART}" = "no" ]; then warn "Your distribution may require the use of the AUTOSTART [-s] option for the service to start after the upgrade completes." fi @@ -510,7 +501,7 @@ if [ "${AUTODELETE}" = "yes" ]; then fi if [ "${AUTOSTART}" = "yes" ]; then - if [ "${REDHAT}" = "no" ]; then + if [ "${DISTRO}" != "redhat" ]; then warn "The AUTOSTART [-s] option may not be needed on your distribution." fi # Check for systemd