diff --git a/misc/install.func b/misc/install.func index df2c9cd6..cb835a1d 100644 --- a/misc/install.func +++ b/misc/install.func @@ -1,3 +1,4 @@ +# This function sets color variables for formatting output in the terminal color() { YW=$(echo "\033[33m") BL=$(echo "\033[36m") @@ -14,6 +15,7 @@ color() { HOLD="-" } +# This function enables IPv6 if it's not disabled and sets verbose mode if the global variable is set to "yes" verb_ip6() { if [ "$VERBOSE" = "yes" ]; then set -x @@ -26,11 +28,13 @@ verb_ip6() { fi } +# This function sets error handling options and defines the error_handler function to handle errors catch_errors() { set -Eeuo pipefail trap 'error_handler $LINENO "$BASH_COMMAND"' ERR } +# This function handles errors error_handler() { local exit_code="$?" local line_number="$1" @@ -42,21 +46,25 @@ error_handler() { fi } +# This function prints an informational message msg_info() { local msg="$1" echo -ne " ${HOLD} ${YW}${msg}..." } +# This function prints a success message msg_ok() { local msg="$1" echo -e "${BFR} ${CM} ${GN}${msg}${CL}" } +# This function prints an error message msg_error() { local msg="$1" echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" } +# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection setting_up_container() { msg_info "Setting up Container OS" sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen @@ -79,6 +87,7 @@ setting_up_container() { msg_ok "Network Connected: ${BL}$(hostname -I)" } +# This function checks the network connection by pinging a known IP address and prompts the user to continue if the internet is not connected network_check() { set +e trap - ERR @@ -98,6 +107,7 @@ network_check() { trap 'error_handler $LINENO "$BASH_COMMAND"' ERR } +# This function updates the Container OS by running apt-get update and upgrade update_os() { msg_info "Updating Container OS" $STD apt-get update @@ -105,6 +115,7 @@ update_os() { msg_ok "Updated Container OS" } +# This function modifies the message of the day (motd) and SSH settings motd_ssh() { echo "export TERM='xterm-256color'" >>/root/.bashrc echo -e "$APPLICATION LXC provided by https://tteck.github.io/Proxmox/\n" >/etc/motd @@ -115,6 +126,7 @@ motd_ssh() { fi } +# This function customizes the container by modifying the getty service and enabling auto-login for the root user customize() { if [[ "$PASSWORD" == "" ]]; then msg_info "Customizing Container" @@ -129,4 +141,4 @@ EOF systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//') msg_ok "Customized Container" fi -} \ No newline at end of file +}