Reduced code base

This commit is contained in:
2025-03-01 13:53:08 -05:00
parent d3673f022d
commit 762be270d5

View File

@ -32,42 +32,6 @@ get_drives_info() {
done
}
get_bay_number() {
local drive=$1
local drive_name=$(basename "$drive")
# Search through mappings for this drive
while IFS=: read -r path bay device; do
if [[ "$drive_name" == "$device" ]]; then
echo "$bay"
return
fi
done <<< "${DRIVE_MAPPINGS[medium2]}"
}
get_physical_mapping() {
local -A drive_map
# Map NVMe drives
for nvme in /dev/nvme*n1; do
if [ -b "$nvme" ]; then
drive_map[11]=$(basename "$nvme")
fi
done
# Map SATA drives
for drive in /dev/sd[a-z]; do
if [ -b "$drive" ]; then
local bay=$(get_bay_number "$drive")
if [[ -n "$bay" ]]; then
drive_map[$bay]=$(basename "$drive")
fi
fi
done
echo "$(declare -p drive_map)"
}
declare -A DRIVE_MAPPINGS=(
["medium2"]="
pci-0000:0c:00.0-ata-3:3
@ -82,7 +46,7 @@ declare -A DRIVE_MAPPINGS=(
build_drive_map() {
local host=$(hostname)
local drive_map=()
declare -A drive_map
# Get mapping for current host
local mapping=${DRIVE_MAPPINGS[$host]}
@ -95,13 +59,18 @@ build_drive_map() {
if [[ -L "/dev/disk/by-path/$path" ]]; then
local drive=$(readlink -f "/dev/disk/by-path/$path" | sed 's/.*\///')
drive_map+=("${slot}:${drive}")
drive_map[$slot]=$drive
fi
done <<< "$mapping"
fi
# Make drive_map available globally
declare -g -A DRIVE_MAP=()
for key in "${!drive_map[@]}"; do
DRIVE_MAP[$key]=${drive_map[$key]}
done
}
# Define the ASCII art maps
large1='''
┌─────────────────────────────────────────────────────────────┐
@ -157,12 +126,13 @@ medium1='''
'''
generate_medium2_layout() {
eval "$(get_physical_mapping)"
# Build the drive map first
build_drive_map
# USB Section with dynamic mapping
printf " External USB [0b:00.0]\n"
printf " ┌────────┐ ┌────────┐\n"
printf " │ %-6s │ │ %-6s │\n" "${drive_map[usb1]:-EMPTY}" "${drive_map[usb2]:-EMPTY}"
printf " │ %-6s │ │ %-6s │\n" "${DRIVE_MAP[usb1]:-EMPTY}" "${DRIVE_MAP[usb2]:-EMPTY}"
printf " └────────┘ └────────┘\n\n"
# Rest of chassis layout with enhanced drive info
@ -171,14 +141,14 @@ generate_medium2_layout() {
printf "│ │\n"
printf "│ NVMe [0d:00.0] Bay 11 │\n"
printf "│ ┌────────┐ │\n"
printf "│ │ %-6s │ │\n" "${drive_map[11]:-EMPTY}"
printf "│ │ %-6s │ │\n" "${DRIVE_MAP[11]:-EMPTY}"
printf "│ └────────┘ │\n"
printf "│ │\n"
printf "│ Front Hot-swap Bays [0c:00.0] │\n"
printf "│ ┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐┌────────┐ │\n"
for bay in {1..10}; do
printf "│ │%-2d:%-4s │" "$bay" "${drive_map[$bay]:-EMPTY}"
printf "│ │%-2d:%-4s │" "$bay" "${DRIVE_MAP[$bay]:-EMPTY}"
done
printf " │\n"