Compare commits

..

No commits in common. "000a7a270166a005f09a53a0604aeb91c2362f90" and "a5096a5b622d6e89ab044d32fa25b8c7e96fc0e6" have entirely different histories.

View File

@ -363,7 +363,7 @@ validate_hostname() {
# Split by dots and validate each label # Split by dots and validate each label
local IFS='.' local IFS='.'
read -ra labels <<<"$hostname" read -ra labels <<< "$hostname"
for label in "${labels[@]}"; do for label in "${labels[@]}"; do
# Each label: 1-63 chars, alphanumeric, hyphens allowed (not at start/end) # Each label: 1-63 chars, alphanumeric, hyphens allowed (not at start/end)
if [[ -z "$label" ]] || [[ ${#label} -gt 63 ]]; then if [[ -z "$label" ]] || [[ ${#label} -gt 63 ]]; then
@ -467,7 +467,7 @@ validate_ipv6_address() {
# Check that no segment exceeds 4 hex chars # Check that no segment exceeds 4 hex chars
local IFS=':' local IFS=':'
local -a segments local -a segments
read -ra segments <<<"$addr" read -ra segments <<< "$addr"
for seg in "${segments[@]}"; do for seg in "${segments[@]}"; do
if [[ ${#seg} -gt 4 ]]; then if [[ ${#seg} -gt 4 ]]; then
return 1 return 1
@ -517,14 +517,14 @@ validate_gateway_in_subnet() {
# Convert IPs to integers # Convert IPs to integers
local IFS='.' local IFS='.'
read -r i1 i2 i3 i4 <<<"$ip" read -r i1 i2 i3 i4 <<< "$ip"
read -r g1 g2 g3 g4 <<<"$gateway" read -r g1 g2 g3 g4 <<< "$gateway"
local ip_int=$(((i1 << 24) + (i2 << 16) + (i3 << 8) + i4)) local ip_int=$(( (i1 << 24) + (i2 << 16) + (i3 << 8) + i4 ))
local gw_int=$(((g1 << 24) + (g2 << 16) + (g3 << 8) + g4)) local gw_int=$(( (g1 << 24) + (g2 << 16) + (g3 << 8) + g4 ))
# Check if both are in same network # Check if both are in same network
if (((ip_int & mask) != (gw_int & mask))); then if (( (ip_int & mask) != (gw_int & mask) )); then
return 1 return 1
fi fi
@ -1152,7 +1152,7 @@ load_vars_file() {
fi fi
fi fi
;; ;;
var_fuse | var_tun | var_gpu | var_ssh | var_verbose | var_protection) var_fuse|var_tun|var_gpu|var_ssh|var_verbose|var_protection)
if [[ "$var_val" != "yes" && "$var_val" != "no" ]]; then if [[ "$var_val" != "yes" && "$var_val" != "no" ]]; then
msg_warn "Invalid boolean '$var_val' for $var_key in $file (must be yes/no), ignoring" msg_warn "Invalid boolean '$var_val' for $var_key in $file (must be yes/no), ignoring"
continue continue
@ -3086,29 +3086,21 @@ check_container_resources() {
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# check_container_storage() # check_container_storage()
# #
# - Checks root (/) partition usage # - Checks /boot partition usage
# - Warns if usage >80% and asks user confirmation before proceeding # - Warns if usage >80% and asks user confirmation before proceeding
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
check_container_storage() { check_container_storage() {
usage=$(df / -P | awk 'NR==2 {print $5}' | tr -d '%') total_size=$(df /boot --output=size | tail -n 1)
local used_size=$(df /boot --output=used | tail -n 1)
if [ -z "$usage" ] || [ "$usage" -lt 0 ]; then usage=$((100 * used_size / total_size))
echo -e "${CROSS}${HOLD}${RD}Error: Failed to check disk usage.${CL}" if ((usage > 80)); then
exit 1 echo -e "${INFO}${HOLD} ${YWB}Warning: Storage is dangerously low (${usage}%).${CL}"
fi echo -ne "Continue anyway? <y/N> "
if [ "$usage" -gt 80 ]; then
echo -e "${INFO}${HOLD}${YWB}Warning: Storage is dangerously low (${usage}%).${CL}"
printf "Continue anyway? <y/N> "
read -r prompt read -r prompt
if [[ ! ${prompt,,} =~ ^(y|yes)$ ]]; then
case "$prompt" in
[yY][eE][sS] | [yY]) ;;
*)
echo -e "${CROSS}${HOLD}${YWB}Exiting based on user input.${CL}" echo -e "${CROSS}${HOLD}${YWB}Exiting based on user input.${CL}"
exit 1 exit 1
;; fi
esac
fi fi
} }