summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2023-12-18 12:02:21 -0500
committerbill-auger <mr.j.spam.me@gmail.com>2024-01-01 20:33:08 -0500
commite6453d19f2ab50f20e3b3d7050166cdc7f0b2a7b (patch)
tree2b0f2db46dbc762840dcb2710bc6435f1edbb404
parent08554b9b872eeebb4ead385645289c225198229b (diff)
define SUPPORTED_ARCHES and EXPERIMENTAL_ARCHES centrally in conf.sh
-rwxr-xr-xsrc/chroot-tools/librechroot4
-rw-r--r--src/lib/conf.sh.in34
2 files changed, 20 insertions, 18 deletions
diff --git a/src/chroot-tools/librechroot b/src/chroot-tools/librechroot
index b9e344e..f12b6b8 100755
--- a/src/chroot-tools/librechroot
+++ b/src/chroot-tools/librechroot
@@ -52,8 +52,7 @@ umask 0022
detect_chroot_arch()
(
local makepkg_conf="$1"
- local supported_arches=( armv7h i686 x86_64 )
- local arches_rx=$(echo "^(${supported_arches[*]})$" | tr ' ' '|')
+ local arches_rx="^($(sed 's/ /|/g' <<<${SUPPORTED_ARCHES[*]}))$"
unset CARCH ; source "$makepkg_conf" &> /dev/null ;
if [[ "$CARCH" =~ $arches_rx ]]; then
@@ -447,7 +446,6 @@ main() {
fi
eval "$(calculate_directories)"
- readonly LIBREUSER LIBREHOME
readonly CHROOTDIR CHROOT COPY
readonly rootdir copydir
readonly mode
diff --git a/src/lib/conf.sh.in b/src/lib/conf.sh.in
index 13fd71e..284a487 100644
--- a/src/lib/conf.sh.in
+++ b/src/lib/conf.sh.in
@@ -44,26 +44,30 @@ 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 ##
-if [[ "$(id -u "${SUDO_USER:-root}")" == 0 ]]; then
- unset SUDO_USER
-fi
-LIBREUSER="${SUDO_USER:-$USER}"
-REPOUSER="${REPOUSER:-$LIBREUSER}"
-if [[ -z "$LIBREHOME" ]]; then
- eval "LIBREHOME=~$LIBREUSER"
-fi
-if [[ -z ${XDG_CONFIG_HOME:-} ]]; then
- export XDG_CONFIG_HOME="${LIBREHOME}"/.config
-fi
-if [[ -z ${XDG_CACHE_HOME:-} ]]; then
- export XDG_CACHE_HOME="${LIBREHOME}"/.cache
-fi
-readonly LIBREUSER REPOUSER LIBREHOME
+# 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
+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
## Low-level generic functions ##