Now both
./install prod --ignore-root-warning
./install --ignore-root-warning prod
will work
$1 was both used for the environment and the root flag
Fixes wallabag/wallabag#3884
IGNORE_ROOT_ARG="--ignore-root-warning"
IGNORE_ROOT=0
IGNORE_ROOT_ARG="--ignore-root-warning"
IGNORE_ROOT=0
-if [ "$1" == "$IGNORE_ROOT_ARG" ]; then
- IGNORE_ROOT=1
-fi
+while :; do
+ case $1 in
+ $IGNORE_ROOT_ARG) IGNORE_ROOT=1
+ ;;
+ *[a-zA-Z]) ENV=$1
+ ;;
+ *) break
+ ;;
+ esac
+ shift
+done
# Abort running this script if root
if [ "$IGNORE_ROOT" -eq 0 ] && [ "$EUID" == "0" ]; then
# Abort running this script if root
if [ "$IGNORE_ROOT" -eq 0 ] && [ "$EUID" == "0" ]; then
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
. "$DIR/require.sh"
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
. "$DIR/require.sh"
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
git checkout $TAG
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
git checkout $TAG
IGNORE_ROOT_ARG="--ignore-root-warning"
IGNORE_ROOT=0
IGNORE_ROOT_ARG="--ignore-root-warning"
IGNORE_ROOT=0
-if [ "$1" == "$IGNORE_ROOT_ARG" ]; then
- IGNORE_ROOT=1
-fi
+while :; do
+ case $1 in
+ $IGNORE_ROOT_ARG) IGNORE_ROOT=1
+ ;;
+ *[a-zA-Z]) ENV=$1
+ ;;
+ *) break
+ ;;
+ esac
+ shift
+done
# Abort running this script if root
if [ "$IGNORE_ROOT" -eq 0 ] && [ "$EUID" == "0" ]; then
# Abort running this script if root
if [ "$IGNORE_ROOT" -eq 0 ] && [ "$EUID" == "0" ]; then
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
. "$DIR/require.sh"
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
. "$DIR/require.sh"
rm -rf var/cache/*
git fetch origin
git fetch --tags
rm -rf var/cache/*
git fetch origin
git fetch --tags