mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-05-15 16:20:25 +00:00
Page:
install.func ‐ script function explanations
Clone
1
install.func ‐ script function explanations
CanbiZ edited this page 2025-01-17 10:20:49 +01:00
Debian/Ubuntu Container Setup Script Function Explanations
1. color()
Purpose: Sets up various color and formatting variables for terminal output.
Details:
- Defines colors like yellow (
YW
), green (GN
), and red (RD
) using ANSI escape codes for text formatting. - Also defines icons for different types of output, such as checkmarks (
CM
), error crosses (CROSS
), and network-related icons (NETWORK
,GATEWAY
).
Example:
color
echo -e "${GN}Success${CL}" # Output: Green colored "Success"
echo -e "${NETWORK}Network${CL}" # Network icon followed by text "Network"
2. verb_ip6()
Purpose: Enables or disables IPv6 based on the DISABLEIPV6
variable and sets the verbose mode.
Details:
- Disables IPv6 by adding a line to
/etc/sysctl.conf
ifDISABLEIPV6
is set toyes
. - Optionally suppresses output based on the
VERBOSE
variable.
Example:
DISABLEIPV6="yes"
verb_ip6 # Disables IPv6 if the variable is set
3. catch_errors()
Purpose: Sets up error handling for the script.
Details:
- Configures the script to exit immediately on errors using
set -Eeuo pipefail
. - Defines a trap that calls
error_handler()
when an error occurs.
Example:
catch_errors
ls non_existent_file # This will trigger the error handler
4. error_handler()
Purpose: Handles errors that occur during script execution.
Details:
- Stops the spinner if it's running.
- Prints the error message with details like the exit code, line number, and the command that failed.
Example:
error_handler 42 "ls non_existent_file"
# Output: [ERROR] in line 42: exit code 2: while executing command "ls non_existent_file"
5. spinner()
Purpose: Displays a rotating spinner animation.
Details:
- Uses a set of frames to create a spinning effect in the terminal.
Example:
spinner # Starts the spinner animation
6. msg_info()
, msg_ok()
, msg_error()
Purpose: Displays messages with different statuses.
Details:
msg_info()
: Displays an informational message with a spinner animation.msg_ok()
: Displays a success message and stops the spinner.msg_error()
: Displays an error message and stops the spinner.
Example:
msg_info "This is an informational message"
msg_ok "Success!"
msg_error "An error occurred"
7. setting_up_container()
Purpose: Sets up the container OS, configures locale, timezone, and network.
Details:
- Modifies
/etc/locale.gen
to enable the correct locale. - Configures timezone and network, retrying network configuration if necessary.
Example:
setting_up_container # Configures OS, locale, timezone, and network
8. network_check()
Purpose: Verifies internet connectivity via IPv4 and IPv6.
Details:
- Checks IPv4 connectivity to Google, Cloudflare, and Quad9 DNS servers.
- Checks IPv6 connectivity and performs DNS lookup for
github.com
.
Example:
network_check # Verifies internet connectivity
9. update_os()
Purpose: Updates the container's OS using apt-get update
and apt-get dist-upgrade
.
Details:
- If
CACHER
is enabled, it configures a proxy for package fetching. - Runs system update and upgrades all installed packages.
Example:
update_os # Updates the container's OS
10. motd_ssh()
Purpose: Modifies the message of the day (MOTD) and SSH settings.
Details:
- Sets terminal to 256-color mode and updates
/etc/motd
with system information. - Configures SSH settings to allow root login if enabled.
Example:
motd_ssh # Modifies MOTD and SSH settings
11. customize()
Purpose: Customizes the container by enabling auto-login and setting up SSH keys.
Details:
- If no password is provided, it enables auto-login for the root user.
- Optionally configures SSH by adding the provided public key to the root user.
Example:
customize # Customizes the container with auto-login and SSH key setup