summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2023-12-21 17:34:59 -0500
committerbill-auger <mr.j.spam.me@gmail.com>2024-01-01 20:33:08 -0500
commit7888e92b142010230f533d14c3511090340be709 (patch)
treee8ee0059bd880f61cb504a49474be6ac08be7e31
parent2548a8829efb146f57a382a30df899a5ae925573 (diff)
refactor LIBREUSER,LIBREHOME computation
-rw-r--r--src/lib/conf.sh.in21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/lib/conf.sh.in b/src/lib/conf.sh.in
index 35a537b..8ca3fdf 100644
--- a/src/lib/conf.sh.in
+++ b/src/lib/conf.sh.in
@@ -44,30 +44,33 @@ REPOUSER=
# NOTE: $WORKDIR and $LIBREHOME/.cache must be writable by $LIBREUSER
LIBREHOME=
-readonly SUPPORTED_ARCHES=( armv7h i686 x86_64 )
-readonly EXPERIMENTAL_ARCHES=( aarch64 ppc64le riscv64 )
-
## configuration end ##
## prepare environment ##
# supported architectures
+
readonly SUPPORTED_ARCHES=( armv7h i686 x86_64 )
readonly EXPERIMENTAL_ARCHES=( aarch64 ppc64le riscv64 )
readonly ALL_ARCHES=( ${SUPPORTED_ARCHES[*]} ${EXPERIMENTAL_ARCHES[*]} )
-# login and home of the calling user
-[[ "$(id -u "${SUDO_USER:-root}")" != 0 ]] || unset SUDO_USER
+# deduce login and home of the calling user
+(( $(id -u "${SUDO_USER:-root}" 2> /dev/null) )) || unset SUDO_USER
readonly LIBREUSER=${SUDO_USER:-$USER}
readonly LIBREHOME=$(eval "echo ${LIBREHOME:-~$LIBREUSER}")
[[ -n ${XDG_CONFIG_HOME:-} ]] || export XDG_CONFIG_HOME="${LIBREHOME}"/.config
[[ -n ${XDG_CACHE_HOME:-} ]] || export XDG_CACHE_HOME="${LIBREHOME}"/.cache
-# validate login and home
-[[ -n ${LIBREUSER:-} ]] || libremessages panic || exit 1 # $EXIT_FAILURE
-[[ -d ${LIBREHOME:-} ]] || libremessages panic || exit 1 # $EXIT_FAILURE
-[[ $LIBREHOME =~ ^[^\~]*$ ]] || libremessages panic || exit 1 # $EXIT_FAILURE
+# validate $LIBREUSER and $LIBREHOME
+UserError() (
+ local err_msg="invalid \$$1 '${!1}'"
+
+ source $(librelib messages) &> /dev/null && error "$err_msg" || echo "ERROR: $err_msg"
+)
+if [[ ! -n ${LIBREUSER:-} ]] ; then UserError '$LIBREUSER' ; exit 1 ; fi # $EXIT_FAILURE
+if [[ ! -d ${LIBREHOME:-} ]] ; then UserError '$LIBREHOME' ; exit 1 ; fi # $EXIT_FAILURE
+if [[ ! $LIBREHOME =~ ^[^\~]*$ ]] ; then UserError '$LIBREHOME' ; exit 1 ; fi # $EXIT_FAILURE
## Low-level generic functions ##