moved functions before execution and changed to vertical

This commit is contained in:
2025-03-01 11:58:15 -05:00
parent 0c5e1e1021
commit 5ba1cc070d

View File

@ -1,5 +1,37 @@
#!/bin/bash
get_device_info() {
local pci_addr=$1
local info=$(lspci -s "$pci_addr")
echo "$info"
}
get_drive_details() {
local device=$1
local size=$(lsblk -d -o NAME,SIZE | grep "$device" | awk '{print $2}')
echo "$size"
}
get_drive_smart_info() {
local device=$1
local smart_info=$(sudo smartctl -A -i -H /dev/$device 2>/dev/null)
local temp=$(echo "$smart_info" | grep "Temperature" | awk '{print $10}' | head -1)
local type=$(echo "$smart_info" | grep "Rotation Rate" | grep -q "Solid State" && echo "SSD" || echo "HDD")
local health=$(echo "$smart_info" | grep "SMART overall-health" | grep -q "PASSED" && echo "✓" || echo "✗")
local model=$(echo "$smart_info" | grep "Device Model" | cut -d: -f2 | xargs)
echo "$type|$temp°C|$health|$model"
}
get_drives_info() {
local path="/dev/disk/by-path"
for drive in "$path"/*; do
if [ -L "$drive" ]; then
echo "$(basename "$drive") $(readlink -f "$drive")"
fi
done
}
# Define the ASCII art maps
large1='''
┌─────────────────────────────────────────────────────────────┐
@ -55,49 +87,44 @@ medium1='''
'''
generate_medium2_layout() {
local usb_drives=$(ls -l /dev/disk/by-path/pci-0000:0b:00.0* | awk -F'/' '{print $NF}')
local sata_drives=$(ls -l /dev/disk/by-path/pci-0000:0c:00.0-ata-* | grep -v "part" | awk -F'/' '{print $NF}')
local nvme_drive=$(ls -l /dev/disk/by-path/pci-0000:0d:00.0* | awk -F'/' '{print $NF}')
local usb_drives=$(ls -l /dev/disk/by-path/pci-0000:0b:00.0* 2>/dev/null | awk -F'/' '{print $NF}')
local sata_drives=$(ls -l /dev/disk/by-path/pci-0000:0c:00.0-ata-* 2>/dev/null | grep -v "part" | awk -F'/' '{print $NF}')
local nvme_drive=$(ls -l /dev/disk/by-path/pci-0000:0d:00.0* 2>/dev/null | awk -F'/' '{print $NF}')
echo " External USB [0b:00.0]"
for usb in $usb_drives; do
size=$(get_drive_details $usb)
smart_info=$(get_drive_smart_info $usb)
echo " ┌────────────────────┐"
echo "$usb ($size) │"
echo "$smart_info"
echo " └────────────────────┘"
done
# Print header
printf "┌──────────────────────────────────────────────────────────────┐\n"
printf "│ B650D4U3-2Q/BCM │\n"
printf "│ │\n"
cat << EOF
┌──────────────────────────────────────────────────────────────┐
│ B650D4U3-2Q/BCM │
NVMe [0d:00.0]
│ ┌────────────────────┐
│ $nvme_drive │ │
│ $(get_drive_smart_info $nvme_drive)
│ └────────────────────┘ │
│ │
Front Hot-swap Bays [0c:00.0] │
EOF
# Print NVMe section
printf "│ NVMe [0d:00.0] │\n"
if [ -n "$nvme_drive" ]; then
local nvme_info=$(get_drive_smart_info "$nvme_drive")
printf "│ ┌────────────────────┐\n"
printf "│ │ %-18s │\n" "$nvme_drive"
printf "│ │ %-18s │ │\n" "$nvme_info"
printf "│ └────────────────────┘ \n"
fi
# Print SATA drives section
printf "│ │\n"
printf "│ Front Hot-swap Bays [0c:00.0] │\n"
for i in {1..10}; do
drive=$(echo "$sata_drives" | grep "ata-$i" || echo "empty")
if [ "$drive" != "empty" ]; then
size=$(get_drive_details $drive)
smart_info=$(get_drive_smart_info $drive)
echo "│ ┌────────────────────┐ │"
echo "│ │ Bay $i: $drive │ │"
echo "│ │ $size | $smart_info│ │"
echo "│ └────────────────────┘ │"
local drive=$(echo "$sata_drives" | grep "ata-$i" || echo "")
printf "│ ┌────────────────────┐ │\n"
if [ -n "$drive" ]; then
local size=$(get_drive_details "$drive")
local smart_info=$(get_drive_smart_info "$drive")
printf "│ │ Bay %-2d: %-10s │ │\n" "$i" "$drive"
printf "│ │ %-18s │ │\n" "$size $smart_info"
else
echo "│ ┌────────────────────┐ │"
echo "│ │ Bay $i: [EMPTY] │ │"
echo "│ └────────────────────┘ │"
printf "│ │ Bay %-2d: [EMPTY] │\n" "$i"
fi
printf "│ └────────────────────┘ │\n"
done
echo "└──────────────────────────────────────────────────────────────┘"
printf "└──────────────────────────────────────────────────────────────┘\n"
}
microGeneric='''
@ -148,29 +175,6 @@ map_drives_to_layout() {
esac
}
get_device_info() {
local pci_addr=$1
local info=$(lspci -s "$pci_addr")
echo "$info"
}
get_drive_details() {
local device=$1
local size=$(lsblk -d -o NAME,SIZE | grep "$device" | awk '{print $2}')
echo "$size"
}
get_drive_smart_info() {
local device=$1
local smart_info=$(sudo smartctl -A -i -H /dev/$device 2>/dev/null)
local temp=$(echo "$smart_info" | grep "Temperature" | awk '{print $10}' | head -1)
local type=$(echo "$smart_info" | grep "Rotation Rate" | grep -q "Solid State" && echo "SSD" || echo "HDD")
local health=$(echo "$smart_info" | grep "SMART overall-health" | grep -q "PASSED" && echo "✓" || echo "✗")
local model=$(echo "$smart_info" | grep "Device Model" | cut -d: -f2 | xargs)
echo "$type|$temp°C|$health|$model"
}
#get_drive_details() {
# local position=$1
# # Get drive info from lsblk and nvme list
@ -192,14 +196,6 @@ get_drive_smart_info() {
#}
# Enhanced Drive Information Function
get_drives_info() {
local path="/dev/disk/by-path"
for drive in "$path"/*; do
if [ -L "$drive" ]; then
echo "$(basename "$drive") $(readlink -f "$drive")"
fi
done
}
update_ascii_layout() {
local layout="$1"