Add progress bar if requested (#121)

This commit is contained in:
Jon 2016-10-20 15:11:03 -04:00 committed by Henric Andersson
commit da8ff2f4bc

View file

@ -130,6 +130,8 @@ CRON=no
QUIET=no QUIET=no
ARCH=$(uname -m) ARCH=$(uname -m)
IGNOREAUTOUPDATE=no IGNOREAUTOUPDATE=no
SHOWPROGRESS=no
WGETOPTIONS="" # extra options for wget. Used for progress bar.
# Default options for package managers, override if needed # Default options for package managers, override if needed
REDHAT_INSTALL="yum -y install" REDHAT_INSTALL="yum -y install"
@ -141,6 +143,7 @@ FILE_RAW=$(mktemp /tmp/plexupdate.raw.XXXX)
FILE_FAILCAUSE=$(mktemp /tmp/plexupdate.failcause.XXXX) FILE_FAILCAUSE=$(mktemp /tmp/plexupdate.failcause.XXXX)
FILE_KAKA=$(mktemp /tmp/plexupdate.kaka.XXXX) FILE_KAKA=$(mktemp /tmp/plexupdate.kaka.XXXX)
FILE_SHA=$(mktemp /tmp/plexupdate.sha.XXXX) FILE_SHA=$(mktemp /tmp/plexupdate.sha.XXXX)
FILE_WGETLOG=$(mktemp /tmp/plexupdate.wget.XXXX)
# Current pages we need - Do not change unless Plex.tv changes again # Current pages we need - Do not change unless Plex.tv changes again
URL_LOGIN=https://plex.tv/users/sign_in.json URL_LOGIN=https://plex.tv/users/sign_in.json
@ -159,7 +162,7 @@ cronexit() {
} }
usage() { usage() {
echo "Usage: $(basename $0) [-acdfFhlpqsuU] [<long options>]" echo "Usage: $(basename $0) [-acdfFhlpPqsuU] [<long options>]"
echo "" echo ""
echo "" echo ""
echo " -a Auto install if download was successful (requires root)" echo " -a Auto install if download was successful (requires root)"
@ -171,6 +174,7 @@ usage() {
echo " -h This help" echo " -h This help"
echo " -l List available builds and distros" echo " -l List available builds and distros"
echo " -p Public Plex Media Server version" echo " -p Public Plex Media Server version"
echo " -P Show progressbar when downloading big files"
echo " -q Quiet mode. No stdout, only stderr and cronexit codes" echo " -q Quiet mode. No stdout, only stderr and cronexit codes"
echo " -r Print download URL and exit" echo " -r Print download URL and exit"
echo " -s Auto start (needed for some distros)" echo " -s Auto start (needed for some distros)"
@ -236,7 +240,7 @@ fi
# Parse commandline # Parse commandline
ALLARGS=( "$@" ) ALLARGS=( "$@" )
optstring="acCdfFhlpqrSsuU -l config:,dldir:,email:,pass:,server:,saveconfig" optstring="acCdfFhlpPqrSsuU -l config:,dldir:,email:,pass:,server:,saveconfig"
getopt -T >/dev/null getopt -T >/dev/null
if [ $? -eq 4 ]; then if [ $? -eq 4 ]; then
optstring="-o $optstring" optstring="-o $optstring"
@ -259,6 +263,7 @@ do
(-F) FORCEALL_CL=yes;; (-F) FORCEALL_CL=yes;;
(-l) LISTOPTS=yes;; (-l) LISTOPTS=yes;;
(-p) PUBLIC_CL=yes;; (-p) PUBLIC_CL=yes;;
(-P) SHOWPROGRESS=yes;;
(-q) QUIET_CL=yes;; (-q) QUIET_CL=yes;;
(-r) PRINT_URL=yes;; (-r) PRINT_URL=yes;;
(-s) AUTOSTART_CL=yes;; (-s) AUTOSTART_CL=yes;;
@ -380,6 +385,10 @@ if [ "${SAVECONFIG}" = "yes" ]; then
done done
fi fi
if [ "${SHOWPROGRESS}" = "yes" ]; then
WGETOPTIONS="--show-progress"
fi
if [ "${IGNOREAUTOUPDATE}" = "yes" ]; then if [ "${IGNOREAUTOUPDATE}" = "yes" ]; then
AUTOUPDATE=no AUTOUPDATE=no
fi fi
@ -526,6 +535,7 @@ function cleanup {
rm "${FILE_FAILCAUSE}" 2>/dev/null >/dev/null rm "${FILE_FAILCAUSE}" 2>/dev/null >/dev/null
rm "${FILE_KAKA}" 2>/dev/null >/dev/null rm "${FILE_KAKA}" 2>/dev/null >/dev/null
rm "${FILE_SHA}" 2>/dev/null >/dev/null rm "${FILE_SHA}" 2>/dev/null >/dev/null
rm "${FILE_WGETLOG}" 2>/dev/null >/dev/null
} }
trap cleanup EXIT trap cleanup EXIT
@ -687,8 +697,9 @@ fi
if [ "${SKIP_DOWNLOAD}" = "no" ]; then if [ "${SKIP_DOWNLOAD}" = "no" ]; then
infoLogNoNewline "Downloading release \"${FILENAME}\"..." infoLogNoNewline "Downloading release \"${FILENAME}\"..."
ERROR=$(wget --load-cookies "${FILE_KAKA}" --save-cookies "${FILE_KAKA}" --keep-session-cookies "${DOWNLOAD}" -O "${DOWNLOADDIR}/${FILENAME}" 2>&1) wget ${WGETOPTIONS} -o "${FILE_WGETLOG}" --load-cookies "${FILE_KAKA}" --save-cookies "${FILE_KAKA}" --keep-session-cookies "${DOWNLOAD}" -O "${DOWNLOADDIR}/${FILENAME}" 2>&1
CODE=$? CODE=$?
ERROR=$(cat ${FILE_WGETLOG})
if [ ${CODE} -ne 0 ]; then if [ ${CODE} -ne 0 ]; then
errorLog "!! Download failed with code ${CODE}, \"${ERROR}\"" errorLog "!! Download failed with code ${CODE}, \"${ERROR}\""
cronexit ${CODE} cronexit ${CODE}