#!/bin/bash # SPDX-Version: 3.0 # SPDX-CreationInfo: 2025-05-05; WEIDNER, Marc S.; # SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.live.builder.git # SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency # SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; # SPDX-FileType: SOURCE # SPDX-License-Identifier: LicenseRef-CNCL-1.1 OR LicenseRef-CCLA-1.1 # SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework. # SPDX-PackageName: CISS.debian.live.builder # SPDX-Security-Contact: security@coresecret.eu # shellcheck disable=SC2155,SC2034 if declare -F guard_sourcing >/dev/null 2>&1; then guard_sourcing || return "${ERR_GUARD_SRCE}" fi ### Definition of MUST set global variables. declare -gr VAR_KERNEL_INF="$(mktemp)" declare -gr VAR_KERNEL_SRT="$(mktemp)" declare -gr VAR_KERNEL_TMP="$(mktemp)" declare -gr VAR_NOTES="$(mktemp)" declare -gr LOG_ERROR="/tmp/cdlb_${VAR_ISO8601}_error.log" touch "${LOG_ERROR}" && chmod 0600 "${LOG_ERROR}" declare -g __umask="" declare -g VAR_ARCHITECTURE="" declare -g VAR_CDLB_INSIDE_RUNNER="${VAR_CDLB_INSIDE_RUNNER:-false}" declare -g VAR_HANDLER_BUILD_DIR="" declare -g VAR_HANDLER_CDI="false" declare -g VAR_HANDLER_NETCUP_IPV6="false" declare -g VAR_HANDLER_SPLASH="" declare -g VAR_HASHED_PWD="" declare -g VAR_SCRIPT_SUCCESS="false" declare -g VAR_SSHFP="false" declare -g VAR_SSHPORT="" declare -g VAR_SSHPUBKEY="" declare -g VAR_SUITE="trixie" declare -ga ARY_HANDLER_JUMPHOST_UNIQUE=() declare -ga ARY_HANDLER_JUMPHOST=() declare -ga ARY_HANDLER_NETCUP_IPV6=() declare -gi VAR_HANDLER_DHCP=0 declare -gi VAR_HANDLER_PRIORITY=0 declare -gi VAR_HANDLER_STA=0 declare -gi VAR_REIONICE_CLASS=2 declare -gi VAR_REIONICE_PRIORITY=4 declare -gr VAR_CHROOT_DIR="chroot" declare -gr VAR_PACKAGES_FILE="chroot.packages.live" declare -gx VAR_AGE="false" declare -gx VAR_AGE_KEY="" declare -gx VAR_LUKS="false" declare -gx VAR_LUKS_KEY="" declare -gx VAR_SIGNER="false" declare -gx VAR_SIGNING_CA="" declare -gx VAR_SIGNING_CA_FPR="" declare -gx VAR_SIGNING_KEY_FPR="" declare -gx VAR_SIGNING_KEY_PASS="" declare -gx VAR_SIGNING_KEY_PASSFILE="" declare -gx VAR_SIGNING_KEY="" ### Definition of error codes. declare -gir ERR_UNCRITICAL=127 declare -gir ERR_NOT_USER_0=128 # Not running as root declare -gir ERR_FLOCK_WRTG=129 # Cannot open lockfile for writing declare -gir ERR_FLOCK_COLL=130 # The Script is already running declare -gir ERR_GUARD_SRCE=131 # Module tried to load twice. declare -gir ERR_GPG__AGENT=132 # GNUPG agent error. declare -gir ERR_SANITIZING=133 # The error occurred while sanitizing a file. declare -gir ERR_SPLASH_PNG=200 # --change-splash MUST be 'club' or 'hexagon' declare -gir ERR_CONTROL_CT=201 # --control MUST be an integer between '1' and '65535' declare -gir ERR_RENICE_PRI=202 # --renice-priority MUST an integer between '-19' and '19' declare -gir ERR_REIONICE_P=203 # --reionice-priority no values provided. declare -gir ERR_REIO_P_VAL=204 # --reionice-priority PRIORITY MUST be an integer between '0' and '7' declare -gir ERR_REIO_C_VAL=205 # --reionice-priority CLASS MUST be an integer between '1' and '3' declare -gir ERR_MISS_PWD_P=206 # --root-password-file missing password file path argument declare -gir ERR_MISS_PWD_F=207 # --root-password-file password file does not exist declare -gir ERR_OWNS_PWD_F=208 # --root-password-file failed to set owner root:root on the PWD file declare -gir ERR_RGHT_PWD_F=209 # --root-password-file failed to set permissions 0400 on the PWD file declare -gir ERR_PASS_LENGH=210 # --root-password-file password MUST be between 20 and 64 characters declare -gir ERR_PASS_PLICY=211 # --root-password-file password MUST NOT contain double quotes declare -gir ERR__SSH__PORT=212 # --ssh-port MUST be an integer between '1' and '65535' declare -gir ERR_ARG_MSMTCH=213 # Wrong Number of optional Arguments provided declare -gir ERR_SECRETSSYM=251 # VAR_TMP_SECRET is a symlink. declare -gir ERR_NOTABSPATH=252 # Not an absolute path declare -gir ERR_INVLD_CHAR=253 # Invalid Character declare -gir ERR_UNBOUNDVAR=254 # Unbound Variable declare -gir ERR_UNSPPTBASH=255 # Unsupported Bash ### Definition of error trap vars declare -gx ERRCODE="" # = $? = $1 = ERRCODE declare -gx ERRSCRT="" # = ${BASH_SOURCE[0]} = $2 = ERRSCRT declare -gx ERRLINE="" # = ${LINENO} = $3 = ERRLINE declare -gx ERRFUNC="" # = ${FUNCNAME[0]:-main} = $4 = ERRFUNC declare -gx ERRCMMD="" # = ${$BASH_COMMAND} = $5 = ERRCMMD declare -gx ERRTRAP="false" # vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh