#!/bin/bash
# SPDX-Version: 3.0
# SPDX-CreationInfo: 2025-06-17; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-ExternalRef: GIT https://git.coresecret.dev/msw/CISS.debian.installer.git
# SPDX-FileContributor: WEIDNER, Marc S.; Centurion Intelligence Consulting Agency
# SPDX-FileCopyrightText: 2024-2025; WEIDNER, Marc S.; <msw@coresecret.dev>
# SPDX-FileType: SOURCE
# SPDX-License-Identifier: EUPL-1.2 OR LicenseRef-CCLA-1.0
# SPDX-LicenseComment: This file is part of the CISS.debian.installer.secure framework.
# SPDX-PackageName: CISS.debian.installer
# SPDX-Security-Contact: security@coresecret.eu

#######################################
# Usage Wrapper 'CISS.debian.installer'.
# Arguments:
#   $0: Script Name
#######################################
usage() {
  clear
  cat << EOF
$(echo -e "\e[92mCISS.debian.installer\e[0m")
$(echo -e "\e[92mMaster V8.00.000.2025.06.17\e[0m")
$(echo -e "\e[92mA powerful Debian installer for setting up a hardened Debian environment.\e[0m")

$(echo -e "\e[97m(c) Marc S. Weidner, 2018 - 2025\e[0m")
$(echo -e "\e[97m(p) Centurion Press, 2024 - 2025\e[0m")

"${0} <option>", where <option> is one or more of:

  --help, -h
    What you're looking at.

  --autoinstall, -a
    No user interaction is required in autoinstall mode.
$(echo -e "\e[93m    ⚡ All data on the disks specified in './.preseed/partitioning.yaml' will be destroyed! ⚡\e[0m")

  --contact, -c
    Displays contact information of the author.

  --debug, -d <MODE>
    Whereas <MODE> can be one or both of the following: 'TRAP' or 'XTRACE'.
    - XTRACE uses the 'set -x' capability to trace every command executed.
    - TRAP uses the bash 'trap DEBUG' capability.
$(echo -e "\e[93m    Detailed debugging information is written to:\e[0m")
      - /tmp/ciss_debian_installer_$$_debug.log
      - /tmp/ciss_debian_installer_$$_trace.log
      - /tmp/ciss_debian_installer_$$_var.log
$(echo -e "\e[93m    Errors are always written to:\e[0m")
      - /tmp/ciss_debian_installer_$$_error.log.

  --log <LEVEL>
    This changes the default log level from 'info' to one of the following values:
      6: 'info'
      5: 'notice'
      4: 'warn'
      3: 'error'
      0: 'emergency'
$(echo -e "\e[93m    The installation log is written to:\e[0m")
      - /tmp/ciss_debian_installer_$$_install.log

  --renice-priority <PRIORITY>
    Reset the nice priority value of the script and all its children
    to the desired <PRIORITY>. MUST be an integer (between "-19" and 19).
    Negative (higher) values MUST be enclosed in double quotes '"'.

  --reionice-priority <CLASS> <PRIORITY>
    Reset the ionice priority value of the script and all its children
    to the desired <CLASS>. MUST be an integer:
      1: realtime
      2: best-effort
      3: idle
    Defaults to '2'.
    Whereas <PRIORITY> MUST be an integer as well between:
      0: highest priority and
      7: lowest priority.
    Defaults to '4'.
    A real-time I/O process can significantly slow down other processes
    or even cause them to starve if it continuously requests I/O.

  --version, -v
    Displays version of ${0}.

$(echo -e "\e[93m💡 Notes:\e[0m")
🔵 You MUST be 'root' to run this script.
🔵 You MUST edit './.preseed/preseed.yaml' in advance.
🔵 You MUST edit './.preseed/partitioning.yaml' in advance.
🔵 You MUST edit './.preseed/password.txt' in advance.
🔵 You SHOULD use the provided YAML-Configuration-File Editor.

$(echo -e "\e[95m💷 Please consider donating to my work at:\e[0m")
$(echo -e "\e[95m🌐 https://coresecret.eu/spenden/         \e[0m")

EOF
}
# vim: number et ts=2 sw=2 sts=2 ai tw=128 ft=sh
