2018-12-04 01:59:03 +01:00
|
|
|
#!/bin/bash -eu
|
|
|
|
|
|
|
|
set +H -xeuo pipefail
|
|
|
|
|
2019-07-10 21:10:34 +02:00
|
|
|
: ${ONEDRIVE_UID:=$(stat /onedrive/data -c '%u')}
|
|
|
|
: ${ONEDRIVE_GID:=$(stat /onedrive/data -c '%g')}
|
2018-12-04 01:59:03 +01:00
|
|
|
|
|
|
|
# Create new group using target GID
|
|
|
|
if ! odgroup="$(getent group $ONEDRIVE_GID)"; then
|
|
|
|
odgroup='onedrive'
|
|
|
|
groupadd "${odgroup}" -g $ONEDRIVE_GID
|
2019-06-09 04:27:00 +02:00
|
|
|
else
|
|
|
|
odgroup=${odgroup%%:*}
|
2018-12-04 01:59:03 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Create new user using target UID
|
|
|
|
if ! oduser="$(getent passwd $ONEDRIVE_UID)"; then
|
|
|
|
oduser='onedrive'
|
2019-07-10 20:08:15 +02:00
|
|
|
useradd -m "${oduser}" -u $ONEDRIVE_UID -g $ONEDRIVE_GID
|
2018-12-04 01:59:03 +01:00
|
|
|
else
|
|
|
|
oduser="${oduser%%:*}"
|
|
|
|
usermod -g "${odgroup}" "${oduser}"
|
|
|
|
grep -qv root <( groups "${oduser}" ) || { echo 'ROOT level priviledges prohibited!'; exit 1; }
|
|
|
|
fi
|
|
|
|
|
|
|
|
chown "${oduser}:${odgroup}" /onedrive/ /onedrive/conf
|
2019-02-24 07:20:50 +01:00
|
|
|
|
|
|
|
# Default parameters
|
2019-09-09 05:44:07 +02:00
|
|
|
ARGS=(--monitor --confdir /onedrive/conf --syncdir /onedrive/data)
|
|
|
|
|
|
|
|
#Make Verbose output optional, based on an environment variable
|
|
|
|
# default behaviour is verbose (to continue to behave as before)
|
|
|
|
if ! [ "${ONEDRIVE_VERBOSE:=1}" == "0" ]; then
|
|
|
|
echo "# We are being verbose"
|
|
|
|
echo "# set ONEDRIVE_VERBOSE environment to 0 (Zero) to be less chatty"
|
|
|
|
ARGS=(--verbose ${ARGS[@]})
|
|
|
|
fi
|
2019-02-24 07:20:50 +01:00
|
|
|
|
|
|
|
if [ ${#} -gt 0 ]; then
|
|
|
|
ARGS=("${@}")
|
|
|
|
fi
|
|
|
|
|
|
|
|
exec gosu "${oduser}" /usr/local/bin/onedrive "${ARGS[@]}"
|