dynamic box widths

This commit is contained in:
2025-03-01 14:32:10 -05:00
parent f8d5cfa1d4
commit 6b93173d9b

View File

@ -130,33 +130,61 @@ medium1='''
''' '''
generate_medium2_layout() { generate_medium2_layout() {
# Build the drive map first
build_drive_map build_drive_map
# USB Section with dynamic mapping # Calculate max width needed for drive names
printf " External USB [0b:00.0]\n" max_width=0
printf " ┌────────┐ ┌────────┐\n" for bay in {1..10} "11" "usb1" "usb2"; do
printf " │ %-6s │ │ %-6s │\n" "${DRIVE_MAP[usb1]:-EMPTY}" "${DRIVE_MAP[usb2]:-EMPTY}" drive_text="${DRIVE_MAP[$bay]:-EMPTY}"
printf " └────────┘ └────────┘\n\n" text_len=$((${#bay} + 1 + ${#drive_text}))
[[ $text_len -gt $max_width ]] && max_width=$text_len
done
# Rest of chassis layout with enhanced drive info # Add padding for box borders
box_width=$((max_width + 2))
# Create dynamic box borders
box_top=$(printf "┌%${box_width}s┐" | tr ' ' '─')
box_bottom=$(printf "└%${box_width}s┘" | tr ' ' '─')
# USB Section
printf "\n External USB [0b:00.0]\n"
printf " %s %s\n" "$box_top" "$box_top"
printf " │ %-${max_width}s │ │ %-${max_width}s │\n" "${DRIVE_MAP[usb1]:-EMPTY}" "${DRIVE_MAP[usb2]:-EMPTY}"
printf " %s %s\n\n" "$box_bottom" "$box_bottom"
# Main chassis section
printf "┌──────────────────────────────────────────────────────────────┐\n" printf "┌──────────────────────────────────────────────────────────────┐\n"
printf "│ B650D4U3-2Q/BCM │\n" printf "│ B650D4U3-2Q/BCM │\n"
printf "│ │\n" printf "│ │\n"
printf "│ NVMe [0d:00.0] Bay 11 │\n" printf "│ NVMe [0d:00.0] Bay 11 │\n"
printf "│ ┌─────────┐ │\n" printf "│ %s │\n" "$box_top"
printf "│ │ %-6s │ │\n" "${DRIVE_MAP[11]:-EMPTY}" printf "│ │ %-${max_width}s │ │\n" "${DRIVE_MAP[11]:-EMPTY}"
printf "│ └─────────┘ │\n" printf "│ %s │\n" "$box_bottom"
printf "│ │\n" printf "│ │\n"
printf "│ Front Hot-swap Bays [0c:00.0] │\n" printf "│ Front Hot-swap Bays [0c:00.0] │\n"
printf "│ ┌─────────┐┌─────────┐┌─────────┐┌─────────┐┌─────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐ │\n"
# Create dynamic box tops for all bays
printf "│ "
for bay in {1..10}; do for bay in {1..10}; do
printf "│ │%-2d:%-4s │" "$bay" "${DRIVE_MAP[$bay]:-EMPTY}" printf "%s" "$box_top"
done done
printf " │\n" printf " │\n"
printf "│ └─────────┘└─────────┘└─────────┘└─────────┘└─────────┘└────────┘└────────┘└────────┘└────────┘└────────┘ │\n"
# Create bay labels with drives
printf "│ "
for bay in {1..10}; do
printf "│%-2d:%-${max_width}s │" "$bay" "${DRIVE_MAP[$bay]:-EMPTY}"
done
printf " │\n"
# Create dynamic box bottoms for all bays
printf "│ "
for bay in {1..10}; do
printf "%s" "$box_bottom"
done
printf " │\n"
printf "└──────────────────────────────────────────────────────────────┘\n" printf "└──────────────────────────────────────────────────────────────┘\n"
} }