Moved custom config to last argument

Makes more sense to have custom config filename at the end, also
solves issue with parameter parsing. Also corrects auto update.

Fixes #75 and #76
This commit is contained in:
Henric Andersson 2016-07-18 17:49:38 -07:00
parent d862bdc2c1
commit e15f31119e
2 changed files with 15 additions and 12 deletions

View file

@ -28,7 +28,7 @@ Obviously you need to change these three so they match your account information.
## 3. advanced options ## 3. advanced options
You can point out a different file than ```.plexupdate``` by providing it as the first argument to the script. It HAS to be the FIRST argument, or it will be ignored. You can point out a different file than ```.plexupdate``` by providing it as the last argument to the script. It HAS to be the LAST argument, or it will be ignored. Any options set by the config file can be overriden with commandline options.
There are also a few additional options for the more enterprising user. Setting any of these to `yes` will enable the function. There are also a few additional options for the more enterprising user. Setting any of these to `yes` will enable the function.

View file

@ -74,11 +74,12 @@ if [ $? -eq 127 ]; then
fi fi
# Allow manual control of configfile # Allow manual control of configfile
if [ ! "$1" = "" -a ! "${1:0:1}" = "-" ]; then HASCFG="${@: -1}"
if [ -f "$1" ]; then if [ ! "${HASCFG}" = "" -a ! "${HASCFG:0:1}" = "-" ]; then
source "$1" if [ -f "${HASCFG}" ]; then
source "${HASCFG}"
else else
echo "ERROR: Cannot load configuration $1" >&2 echo "ERROR: Cannot load configuration ${HASCFG}" >&2
exit 1 exit 1
fi fi
else else
@ -139,10 +140,10 @@ cronexit() {
} }
usage() { usage() {
echo "Usage: $(basename $0) [configfile] [-acfhopqsSuU]" echo "Usage: $(basename $0) [-acfhopqsSuU] [config file]"
echo "" echo ""
echo " configfile overrides the default ~/.plexupdate" echo " config file overrides the default ~/.plexupdate"
echo " If used, it must be the FIRST option or it will be ignored" echo " If used, it must be the LAST option or it will be ignored"
echo "" echo ""
echo " -a Auto install if download was successful (requires root)" echo " -a Auto install if download was successful (requires root)"
echo " -c Cron mode, only fatal errors return non-zero cronexit code" echo " -c Cron mode, only fatal errors return non-zero cronexit code"
@ -163,8 +164,8 @@ usage() {
} }
# Parse commandline # Parse commandline
ALLARGS="$@" ALLARGS=( "$@" )
set -- $(getopt aCdfhkopqruU: -- "$@") set -- $(getopt acCdfhkopqruU: -- "$@")
while true; while true;
do do
case "$1" in case "$1" in
@ -228,15 +229,17 @@ if [ "${AUTOUPDATE}" == "yes" ]; then
fi fi
echo "OK" echo "OK"
popd >/dev/null popd >/dev/null
unset ALLARGS["-u"]
if ! type "$0" 2>/dev/null >/dev/null ; then if ! type "$0" 2>/dev/null >/dev/null ; then
if [ -f "$0" ]; then if [ -f "$0" ]; then
/bin/bash "$0" ${ALLARGS} -U /bin/bash "$0" -U ${ALLARGS[@]}
else else
echo "Error: Unable to relaunch, couldn't find $0" >&2 echo "Error: Unable to relaunch, couldn't find $0" >&2
cronexit 1 cronexit 1
fi fi
else else
"$0" ${ALLARGS} -U "$0" -U ${ALLARGS[@]}
fi fi
cronexit $? cronexit $?
fi fi