V8.00.000.2025.06.17
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 41s

Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
2025-07-26 18:40:34 +02:00
parent 6748f69e61
commit e64a0f5404
11 changed files with 111 additions and 86 deletions

View File

@@ -37,15 +37,16 @@ recipe:
member: 4 member: 4
spare: 1 spare: 1
level: 6 # Only Level "1", "5", "6" and "10" are supported. level: 6 # Only Level "1", "5", "6" and "10" are supported.
meta: 1.2 # Metadata Format. Default to '1.2'.
table: "gpt" # MUST be "gpt" for "UEFI" || "msdos": table: "gpt" # MUST be "gpt" for "UEFI" || "msdos":
syntax: true # This is set to "false" by default, otherwise if the recipe is tested by the authors to "true". syntax: true # This is set to "false" by default, otherwise if the recipe is tested by the authors to "true".
### Version of the specific recipe. ### Version of the specific recipe.
version: "1.1.4" version: "1.1.5"
dev: dev:
sda: sda:
1: 1:
begin: "2MiB" begin: "2MiB"
end: "512MiB" end: "1024MiB"
bootable: false bootable: false
encryption: encryption:
enable: false # MUST be "false" for "/boot/efi" enable: false # MUST be "false" for "/boot/efi"
@@ -78,7 +79,7 @@ recipe:
path: "/boot/efi" path: "/boot/efi"
primary: primary primary: primary
2: 2:
begin: "512MiB" begin: "1024MiB"
end: "2GiB" end: "2GiB"
bootable: false bootable: false
encryption: encryption:
@@ -113,7 +114,7 @@ recipe:
primary: primary primary: primary
3: 3:
begin: "2GiB" begin: "2GiB"
end: "6GiB" end: "10GiB"
bootable: false bootable: false
encryption: encryption:
enable: true enable: true
@@ -146,8 +147,8 @@ recipe:
path: "/recovery" path: "/recovery"
primary: primary primary: primary
4: 4:
begin: "6GiB" begin: "10GiB"
end: "8GiB" end: "14GiB"
bootable: false bootable: false
encryption: encryption:
enable: true # MUST be "true" for ephemeral "SWAP" enable: true # MUST be "true" for ephemeral "SWAP"
@@ -180,8 +181,8 @@ recipe:
path: "SWAP" path: "SWAP"
primary: primary primary: primary
5: 5:
begin: "8GiB" begin: "14GiB"
end: "10GiB" end: "18GiB"
bootable: false bootable: false
encryption: encryption:
enable: true # MUST be "true" for ephemeral "/tmp" enable: true # MUST be "true" for ephemeral "/tmp"
@@ -214,7 +215,7 @@ recipe:
path: "/tmp" path: "/tmp"
primary: primary primary: primary
6: 6:
begin: "10GiB" begin: "18GiB"
end: "42GiB" end: "42GiB"
bootable: false bootable: false
encryption: encryption:
@@ -453,7 +454,7 @@ recipe:
primary: primary primary: primary
13: 13:
begin: "238GiB" begin: "238GiB"
end: "-1" end: "-1" # The last 16 MiB will be reserved for GPT metadata.
bootable: false bootable: false
encryption: encryption:
enable: true enable: true

View File

@@ -20,41 +20,66 @@
# default login shell has been zsh, but bash remains available at '/bin/bash'. Windows support. You can use bash via WSL, MSYS2, # default login shell has been zsh, but bash remains available at '/bin/bash'. Windows support. You can use bash via WSL, MSYS2,
# or Cygwin on Windows systems. # or Cygwin on Windows systems.
### PRELIMINARY CHECKS ### CATCH ARGUMENTS AND DECLARE BASIC VARIABLES.
# shellcheck disable=SC2155
declare -grx VAR_PARAM_COUNT="$#" # Arguments passed to script.
declare -grx VAR_PARAM_STRNG="$*" # Arguments passed to script as string.
declare -ag ARY_PARAM_ARRAY=("$@") # Arguments passed to script as an array.
declare -grx VAR_SETUP_FILE="${0##*/}" # 'setup.sh'
declare -grx VAR_SETUP_PATH="$(cd "$(dirname "${0}")" && pwd)" # '/opt/git/CISS.debian.installer'
declare -grx VAR_SETUP_FULL="$(cd "$(dirname "${0}")" && pwd)/${0##*/}" # '/opt/git/CISS.debian.installer/setup.sh'
### PRELIMINARY CHECKS.
### No ash, dash, ksh, sh, zsh.
# shellcheck disable=2292 # shellcheck disable=2292
[ -z "${BASH_VERSINFO[0]}" ] && { [ -z "${BASH_VERSINFO[0]}" ] && {
. ./meta_loader_early.sh . /../../meta_loader_early.sh
printf "%b❌ Please make sure you are using 'bash'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2 printf "%b❌ Please make sure you are using 'bash'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
exit "${ERR_UNSUPPORTED_BASH}" exit "${ERR_UNSUPPORTED_BASH}"
} }
### Not root.
[[ ${EUID} -ne 0 ]] && { [[ ${EUID} -ne 0 ]] && {
. ./meta_loader_early.sh . /../../meta_loader_early.sh
printf "%b❌ Please make sure you are 'root'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2 printf "%b❌ Please make sure you are 'root'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
exit "${ERR_USER_IS_NOT_ROOT}" exit "${ERR_USER_IS_NOT_ROOT}"
} }
### Not called by sh.
# shellcheck disable=2312 # shellcheck disable=2312
[[ $(kill -l | grep -c SIG) -eq 0 ]] && { [[ $(kill -l | grep -c SIG) -eq 0 ]] && {
. ./meta_loader_early.sh . /../../meta_loader_early.sh
printf "%b❌ Please make sure you are calling the script without leading 'sh'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2 printf "%b❌ Please make sure you are calling the script without leading 'sh'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
exit "${ERR_UNSUPPORTED_BASH}" exit "${ERR_UNSUPPORTED_BASH}"
} }
### Not sourced.
[[ "${BASH_SOURCE[0]}" != "$0" ]] && {
. /../../meta_loader_early.sh
printf "%b❌ This script must be executed, not sourced. Please run './setup.sh' directly. %b%b" "${RED}" "${RES}" "${NL}" >&2
exit "${ERR_UNSUPPORTED_BASH}"
}
### Minimum Bash version 5.
[[ ${BASH_VERSINFO[0]} -lt 5 ]] && { [[ ${BASH_VERSINFO[0]} -lt 5 ]] && {
. ./meta_loader_early.sh . /../../meta_loader_early.sh
printf "%b❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... %b%b" "${RED}" "${BASH_VERSION}" "${RES}" "${NL}" >&2 printf "%b❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... %b%b" "${RED}" "${BASH_VERSION}" "${RES}" "${NL}" >&2
exit "${ERR_UNSUPPORTED_BASH}" exit "${ERR_UNSUPPORTED_BASH}"
} }
### Minimum Bash version 5.1.
[[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && { [[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && {
. ./meta_loader_early.sh . /../../meta_loader_early.sh
printf "%b❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... %b%b" "${RED}" "${BASH_VERSION}" "${RES}" "${NL}" >&2 printf "%b❌ Minimum requirement is bash 5.1. You are using '%s'! Bye... %b%b" "${RED}" "${BASH_VERSION}" "${RES}" "${NL}" >&2
exit "${ERR_UNSUPPORTED_BASH}" exit "${ERR_UNSUPPORTED_BASH}"
} }
### No arguments.
[[ ${#} -eq 0 ]] && { [[ ${#} -eq 0 ]] && {
. ./lib/0000_usage.sh; usage >&2; exit 1; } . . /../../meta_loader_early.sh
usage >&2
exit 1
}
### CHECK FOR CONTACT, HELP, AND VERSION STRING. ### CHECK FOR CONTACT, HELP, AND VERSION STRING.
for arg in "$@"; do case "${arg,,}" in -c|--contact) . ./meta_loader_cuv.sh; contact; exit 0;; esac; done for arg in "$@"; do case "${arg,,}" in -c|--contact) . ./meta_loader_cuv.sh; contact; exit 0;; esac; done
@@ -62,9 +87,6 @@ for arg in "$@"; do case "${arg,,}" in -h|--help) . ./meta_loader_cuv.sh; usa
for arg in "$@"; do case "${arg,,}" in -v|--version) . ./meta_loader_cuv.sh; version; exit 0;; esac; done for arg in "$@"; do case "${arg,,}" in -v|--version) . ./meta_loader_cuv.sh; version; exit 0;; esac; done
### SOURCING MUST SET EARLY VARIABLES. SOURCING COLOR_ECHO() AND GUARD_SOURCING(). ### SOURCING MUST SET EARLY VARIABLES. SOURCING COLOR_ECHO() AND GUARD_SOURCING().
declare -grx VAR_PARAM_COUNT="$#"
declare -grx VAR_PARAM_STRNG="$*"
declare -ag ARY_PARAM_ARRAY=("$@")
. ./lib/0010_guard_sourcing.sh . ./lib/0010_guard_sourcing.sh
. ./lib/0010_source_guard.sh . ./lib/0010_source_guard.sh
source_guard "./var/color.var.sh" source_guard "./var/color.var.sh"
@@ -121,8 +143,8 @@ for arg in "$@"; do case "${arg,,}" in -a|--autoinstall) declare -gx VAR_AUTO_IN
### ACTIVATING TRAPS. ### ACTIVATING TRAPS.
color_echo "${CYA}" "ACTIVATING TRAPS." color_echo "${CYA}" "ACTIVATING TRAPS."
trap 'trap_exit "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' EXIT trap 'trap_exit "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' EXIT
trap 'trap_int' INT TERM
trap 'trap_err "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' ERR trap 'trap_err "$?" "${BASH_SOURCE[0]}" "${LINENO}" "${FUNCNAME[0]:-main}" "${BASH_COMMAND}"' ERR
trap 'trap_int' INT TERM
### INTERACTIVE MODE NOTES AND KERNEL SELECTION. ### INTERACTIVE MODE NOTES AND KERNEL SELECTION.
# TODO: Update 0110_check_kernel.sh & sourcing # TODO: Update 0110_check_kernel.sh & sourcing

View File

@@ -109,7 +109,7 @@ partitioning() {
### Assign the landing zone of each partition. ### Assign the landing zone of each partition.
if [[ "${var_end}" == "-1" ]]; then if [[ "${var_end}" == "-1" ]]; then
var_end_arg="100%" var_end_arg="-16MiB"
else else
var_end_arg="${var_end}" var_end_arg="${var_end}"
fi fi
@@ -189,6 +189,9 @@ partitioning() {
done done
lsblk -o NAME,START,SIZE,PHY-SEC,LOG-SEC,ALIGNMENT "/dev/${var_dev}" >| "${DIR_LOG}/${var_dev}_alignment.log"
sgdisk -p "/dev/${var_dev}" >| "${DIR_LOG}/${var_dev}_info.log"
done done
return 0 return 0

View File

@@ -71,6 +71,8 @@ setup_filesystem() {
done done
lsblk -o NAME,MAJ:MIN,FSTYPE,FSVER,SIZE,UUID,MOUNTPOINT,PATH "/dev/${var_dev}" >| "${DIR_LOG}/${var_dev}_overview.log"
done done
return 0 return 0
} }

View File

@@ -38,7 +38,7 @@ skip_path() {
# 3: MOUNT_OPTIONS # 3: MOUNT_OPTIONS
####################################### #######################################
mount_with_dir() { mount_with_dir() {
declare var_mount_path="$1" var_mount_device="$2" var_mount_options="$3" declare var_mount_path="$1" var_mount_device="$2" var_mount_options="$3:-"
[[ "${var_mount_path}" != "/" ]] && mkdir -p "${TARGET}${var_mount_path}" [[ "${var_mount_path}" != "/" ]] && mkdir -p "${TARGET}${var_mount_path}"

View File

@@ -137,42 +137,44 @@ trap_exit_non_zero() {
gauge ) dialog_gauge_cleaner ;; gauge ) dialog_gauge_cleaner ;;
esac esac
clean_up "${var_code}" clean_up "${var_code}"
printf "%b❌ Trap on 'EXIT' : CISS.debian.installer Script failed. %b%b" "${RED}" "${RES}" "${NL}" printf "%b❌ Trap on 'EXIT' : CISS.debian.installer Script failed. %b%b" "${RED}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ : This was most probably caused by an unbound variable. %b%b" "${RED}" "${RES}" "${NL}" printf "%b❌ : This was most probably caused by an unbound variable. %b%b" "${RED}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ GIT Commit : %s %b%b" "${RED}" "${VAR_GIT_REL}" "${RES}" "${NL}" printf "%b❌ GIT Commit : %s %b%b" "${RED}" "${VAR_GIT_REL}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Version : %s %b%b" "${RED}" "${VAR_VERSION}" "${RES}" "${NL}" printf "%b❌ Version : %s %b%b" "${RED}" "${VAR_VERSION}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Epoch : %s %b%b" "${RED}" "${EPOCHREALTIME}" "${RES}" "${NL}" printf "%b❌ Epoch : %s %b%b" "${RED}" "${EPOCHREALTIME}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Bash MAJ Release : %s %b%b" "${RED}" "${BASH_VERSINFO[0]}" "${RES}" "${NL}" printf "%b❌ Bash MAJ Release : %s %b%b" "${RED}" "${BASH_VERSINFO[0]}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Bash MIN Version : %s %b%b" "${RED}" "${BASH_VERSINFO[1]}" "${RES}" "${NL}" printf "%b❌ Bash MIN Version : %s %b%b" "${RED}" "${BASH_VERSINFO[1]}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Bash Patch Level : %s %b%b" "${RED}" "${BASH_VERSINFO[2]}" "${RES}" "${NL}" printf "%b❌ Bash Patch Level : %s %b%b" "${RED}" "${BASH_VERSINFO[2]}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ UID : %s %b%b" "${RED}" "${UID}" "${RES}" "${NL}" printf "%b❌ UID : %s %b%b" "${RED}" "${UID}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ EUID : %s %b%b" "${RED}" "${EUID}" "${RES}" "${NL}" printf "%b❌ EUID : %s %b%b" "${RED}" "${EUID}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Hostname : %s %b%b" "${RED}" "${HOSTNAME}" "${RES}" "${NL}" printf "%b❌ Hostname : %s %b%b" "${RED}" "${HOSTNAME}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Hostsystem : %s %b%b" "${RED}" "${VAR_SYSTEM}" "${RES}" "${NL}" printf "%b❌ Hostsystem : %s %b%b" "${RED}" "${VAR_SYSTEM}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Error : %s %b%b" "${RED}" "${var_code}" "${RES}" "${NL}" printf "%b❌ Error : %s %b%b" "${RED}" "${var_code}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Line : %s %b%b" "${RED}" "${var_line}" "${RES}" "${NL}" printf "%b❌ Line : %s %b%b" "${RED}" "${var_line}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Script : %s %b%b" "${RED}" "${var_scrt}" "${RES}" "${NL}" printf "%b❌ Script : %s %b%b" "${RED}" "${var_scrt}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Function : %s %b%b" "${RED}" "${var_func}" "${RES}" "${NL}" printf "%b❌ Function : %s %b%b" "${RED}" "${var_func}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Command : %s %b%b" "${RED}" "${var_cmmd}" "${RES}" "${NL}" printf "%b❌ Command : %s %b%b" "${RED}" "${var_cmmd}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Script PID : %s %b%b" "${RED}" "${$}" "${RES}" "${NL}" printf "%b❌ Script PID : %s %b%b" "${RED}" "${$}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Script Runtime : %s %b%b" "${RED}" "${SECONDS}" "${RES}" "${NL}" printf "%b❌ Script Runtime : %s %b%b" "${RED}" "${SECONDS}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Arguments Counter : %s %b%b" "${RED}" "${VAR_PARAM_COUNT}" "${RES}" "${NL}" printf "%b❌ Arguments Counter : %s %b%b" "${RED}" "${VAR_PARAM_COUNT}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Arguments Original : %s %b%b" "${RED}" "${VAR_PARAM_STRNG}" "${RES}" "${NL}" printf "%b❌ Arguments Original : %s %b%b" "${RED}" "${VAR_PARAM_STRNG}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Arguments Sanitized : %s %b%b" "${RED}" "${VAR_ARG_SANITIZED}" "${RES}" "${NL}" printf "%b❌ Arguments Sanitized : %s %b%b" "${RED}" "${VAR_ARG_SANITIZED}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ Error Log saved at : %s %b%b" "${RED}" "${LOG_ERR}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ cat %s %b%b" "${RED}" "${LOG_ERR}" "${RES}" "${NL}" | tee "${LOG_ERR}"
if [[ "${VAR_DEBUG_TRACE}" == "true" || "${VAR_DEBUG_TRAP}" == "true" ]]; then if [[ "${VAR_DEBUG_TRACE}" == "true" || "${VAR_DEBUG_TRAP}" == "true" ]]; then
printf "%b❌ Vars Dump saved at : %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" printf "%b❌ Vars Dump saved at : %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ cat %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" printf "%b❌ cat %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_VAR}" "${RES}" "${NL}" | tee "${LOG_ERR}"
fi fi
if [[ "${VAR_DEBUG_TRAP}" == "true" ]]; then if [[ "${VAR_DEBUG_TRAP}" == "true" ]]; then
printf "%b❌ Debug Log saved at : %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" printf "%b❌ Debug Log saved at : %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ cat %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" printf "%b❌ cat %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_DBG}" "${RES}" "${NL}" | tee "${LOG_ERR}"
fi fi
if [[ "${VAR_DEBUG_TRACE}" == "true" ]]; then if [[ "${VAR_DEBUG_TRACE}" == "true" ]]; then
printf "%b❌ Trace Log saved at : %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" printf "%b❌ Trace Log saved at : %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ cat %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" printf "%b❌ cat %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" | tee "${LOG_ERR}"
printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" printf "%b❌ less -R %s %b%b" "${RED}" "${LOG_TRC}" "${RES}" "${NL}" | tee "${LOG_ERR}"
fi fi
print_stacktrace print_stacktrace
fi fi

View File

@@ -12,9 +12,9 @@
### SOURCING CONTACT, USAGE, VERSION MODULES FOR RAPID REACTION. ### SOURCING CONTACT, USAGE, VERSION MODULES FOR RAPID REACTION.
. ./lib/0000_usage.sh
. ./lib/0001_contact.sh . ./lib/0001_contact.sh
. ./lib/0002_version.sh . ./lib/0002_usage.sh
. ./lib/0003_version.sh
. ./var/early.var.sh . ./var/early.var.sh
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh # vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh

View File

@@ -13,7 +13,6 @@
guard_sourcing guard_sourcing
### Definition of MUST set early variables. ### Definition of MUST set early variables.
declare -grx VAR_CONTACT="security@coresecret.eu" declare -grx VAR_CONTACT="security@coresecret.eu"
declare -grx VAR_VERSION="Master V8.00.000.2025.06.17" declare -grx VAR_VERSION="Master V8.00.000.2025.06.17"
# shellcheck disable=SC2155 # shellcheck disable=SC2155

View File

@@ -22,11 +22,7 @@ declare -grx VAR_KERNEL_TMP=$(mktemp var_kernel_tmp.XXXXXXXX)
declare -grx VAR_KERNEL_SRT=$(mktemp var_kernel_srt.XXXXXXXX) declare -grx VAR_KERNEL_SRT=$(mktemp var_kernel_srt.XXXXXXXX)
# shellcheck disable=SC2155 # shellcheck disable=SC2155
declare -grx VAR_NOTES=$(mktemp var_notes.XXXXXXXX) declare -grx VAR_NOTES=$(mktemp var_notes.XXXXXXXX)
declare -grx VAR_SETUP_FILE="${0##*/}" # 'setup.sh'
# shellcheck disable=SC2155
declare -grx VAR_SETUP_PATH="$(cd "$(dirname "${0}")" && pwd)" # '/opt/git/CISS.debian.installer'
# shellcheck disable=SC2155
declare -grx VAR_SETUP_FULL="$(cd "$(dirname "${0}")" && pwd)/${0##*/}" # '/opt/git/CISS.debian.installer/setup.sh'
### Initialize variables of different directories. ### Initialize variables of different directories.
declare -grx DIR_BAK="/tmp/.ciss/backup" declare -grx DIR_BAK="/tmp/.ciss/backup"