mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-26 00:08:28 +00:00
Implement better argument handling in install.sh
This commit is contained in:
parent
dc9fe449e6
commit
37014ec86d
@ -1,14 +1,72 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ "$1" == "--me" ]; then
|
userinstall=no
|
||||||
|
steamcmd_user=
|
||||||
|
showusage=no
|
||||||
|
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
case "$1" in
|
||||||
|
--me)
|
||||||
|
userinstall=yes
|
||||||
|
steamcmd_user="--me"
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
showusage=yes
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
echo "Invalid option '$1'"
|
||||||
|
showusage=yes
|
||||||
|
break;
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ -n "$steamcmd_user" ]; then
|
||||||
|
echo "Multiple users specified"
|
||||||
|
showusage=yes
|
||||||
|
break;
|
||||||
|
elif getent passwd "$1" >/dev/null 2>&1; then
|
||||||
|
steamcmd_user="$1"
|
||||||
|
else
|
||||||
|
echo "Invalid user '$1'"
|
||||||
|
showusage=yes
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$userinstall" == "yes" -a "$UID" -eq 0 ]; then
|
||||||
|
echo "Refusing to perform user-install as root"
|
||||||
|
showusage=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$showusage" == "no" -a -z "$steamcmd_user" ]; then
|
||||||
|
echo "No user specified"
|
||||||
|
showusage=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$userinstall" == "yes" ]; then
|
||||||
PREFIX="${PREFIX:-${HOME}}"
|
PREFIX="${PREFIX:-${HOME}}"
|
||||||
EXECPREFIX="${EXECPREFIX:-${PREFIX}}"
|
EXECPREFIX="${EXECPREFIX:-${PREFIX}}"
|
||||||
else
|
else
|
||||||
EXECPREFIX="${EXECPREFIX:-/usr/local}"
|
EXECPREFIX="${EXECPREFIX:-/usr/local}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$1" ]; then
|
if [ "$showusage" == "yes" ]; then
|
||||||
if [ "$1" == "--me" -a "$UID" -ne 0 ]; then
|
echo "You must specify your system steam user who own steamcmd directory to install ARK Tools."
|
||||||
|
echo "Specify the special used '--me' to perform a user-install."
|
||||||
|
echo "Usage: ./install.sh steam"
|
||||||
|
echo
|
||||||
|
echo "Environment variables affecting install:"
|
||||||
|
echo "EXECPREFIX: prefix in which to install arkmanager executable"
|
||||||
|
echo " [${EXECPREFIX}]"
|
||||||
|
echo "INSTALL_ROOT: staging directory in which to perform install"
|
||||||
|
echo " [${INSTALL_ROOT}]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$userinstall" == "yes" ]; then
|
||||||
# Copy arkmanager to ~/bin
|
# Copy arkmanager to ~/bin
|
||||||
mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/bin"
|
mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/bin"
|
||||||
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
||||||
@ -28,10 +86,7 @@ if [ ! -z "$1" ]; then
|
|||||||
cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg"
|
cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg"
|
||||||
sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg"
|
sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg"
|
||||||
fi
|
fi
|
||||||
elif [ "$1" == "--me" ]; then
|
else
|
||||||
echo "You specified the special '--me' user while running as root. This is not permitted."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
# Copy arkmanager to /usr/bin and set permissions
|
# Copy arkmanager to /usr/bin and set permissions
|
||||||
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
||||||
chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
||||||
@ -128,18 +183,6 @@ if [ ! -z "$1" ]; then
|
|||||||
chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
||||||
sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|;s|\"/home/steam|\"/home/$1|" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|;s|\"/home/steam|\"/home/$1|" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "You must specify your system steam user who own steamcmd directory to install ARK Tools."
|
|
||||||
echo "Specify the special used '--me' to perform a user-install."
|
|
||||||
echo "Usage: ./install.sh steam"
|
|
||||||
echo
|
|
||||||
echo "Environment variables affecting install:"
|
|
||||||
echo "EXECPREFIX: prefix in which to install arkmanager executable"
|
|
||||||
echo " [${EXECPREFIX}]"
|
|
||||||
echo "INSTALL_ROOT: staging directory in which to perform install"
|
|
||||||
echo " [${INSTALL_ROOT}]"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user