V8.00.000.2025.06.17
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 41s
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:
@@ -20,51 +20,73 @@
|
||||
# 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.
|
||||
|
||||
### PRELIMINARY CHECKS
|
||||
# shellcheck disable=2292
|
||||
[ -z "${BASH_VERSINFO[0]}" ] && {
|
||||
. ./meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are using 'bash'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
### 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'
|
||||
|
||||
[[ ${EUID} -ne 0 ]] && {
|
||||
. ./meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are 'root'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_USER_IS_NOT_ROOT}"
|
||||
}
|
||||
### PRELIMINARY CHECKS.
|
||||
### No ash, dash, ksh, sh, zsh.
|
||||
# shellcheck disable=2292
|
||||
[ -z "${BASH_VERSINFO[0]}" ] && {
|
||||
. /../../meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are using 'bash'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
|
||||
# shellcheck disable=2312
|
||||
[[ $(kill -l | grep -c SIG) -eq 0 ]] && {
|
||||
. ./meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are calling the script without leading 'sh'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
### Not root.
|
||||
[[ ${EUID} -ne 0 ]] && {
|
||||
. /../../meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are 'root'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_USER_IS_NOT_ROOT}"
|
||||
}
|
||||
|
||||
[[ ${BASH_VERSINFO[0]} -lt 5 ]] && {
|
||||
. ./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
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
### Not called by sh.
|
||||
# shellcheck disable=2312
|
||||
[[ $(kill -l | grep -c SIG) -eq 0 ]] && {
|
||||
. /../../meta_loader_early.sh
|
||||
printf "%b❌ Please make sure you are calling the script without leading 'sh'! Bye... %b%b" "${RED}" "${RES}" "${NL}" >&2
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
|
||||
[[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && {
|
||||
. ./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
|
||||
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}"
|
||||
}
|
||||
|
||||
[[ ${#} -eq 0 ]] && {
|
||||
. ./lib/0000_usage.sh; usage >&2; exit 1; }
|
||||
### Minimum Bash version 5.
|
||||
[[ ${BASH_VERSINFO[0]} -lt 5 ]] && {
|
||||
. /../../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
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
|
||||
### Minimum Bash version 5.1.
|
||||
[[ ${BASH_VERSINFO[0]} -le 5 ]] && [[ ${BASH_VERSINFO[1]} -le 1 ]] && {
|
||||
. /../../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
|
||||
exit "${ERR_UNSUPPORTED_BASH}"
|
||||
}
|
||||
|
||||
### No arguments.
|
||||
[[ ${#} -eq 0 ]] && {
|
||||
. . /../../meta_loader_early.sh
|
||||
usage >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
### 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 -h|--help) . ./meta_loader_cuv.sh; usage; exit 0;; esac; done
|
||||
for arg in "$@"; do case "${arg,,}" in -h|--help) . ./meta_loader_cuv.sh; usage ; 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().
|
||||
declare -grx VAR_PARAM_COUNT="$#"
|
||||
declare -grx VAR_PARAM_STRNG="$*"
|
||||
declare -ag ARY_PARAM_ARRAY=("$@")
|
||||
. ./lib/0010_guard_sourcing.sh
|
||||
. ./lib/0010_source_guard.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.
|
||||
color_echo "${CYA}" "ACTIVATING TRAPS."
|
||||
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_int' INT TERM
|
||||
|
||||
### INTERACTIVE MODE NOTES AND KERNEL SELECTION.
|
||||
# TODO: Update 0110_check_kernel.sh & sourcing
|
||||
|
||||
Reference in New Issue
Block a user