Files
csr_setup/lib/RAM.sh
lucas_csr 20781c9d90 ordered into /lib
put all subscripts into lib for readability
2026-07-14 16:56:28 +02:00

46 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
function RAM(){
local OUT_FILE=$1
# Read RAM information
ram_info=$(sudo dmidecode -t memory)
# Get memory type
ram_type=$(echo "$ram_info" | awk -F': ' '/^[[:space:]]*Type:/ && $2 !~ /Unknown/ {print $2; exit}')
# Get module sizes
modules=$(echo "$ram_info" | awk '
/^[[:space:]]*Size:/ {
if ($0 !~ /No Module Installed/ && $2 ~ /^[0-9]+$/)
print $2
}
')
# Count empty slots
empty_slots=$(echo "$ram_info" | awk '
/^[[:space:]]*Size:/ {
if ($0 ~ /No Module Installed/)
count++
}
END {
print count+0
}
')
# Calculate total RAM and format modules
total=0
sizes=""
for size in $modules; do
total=$((total + size))
if [ -z "$sizes" ]; then
sizes="${size} GB"
else
sizes="${sizes} + ${size} GB"
fi
done
# Output
if [ -z "$modules" ]; then
echo -e "RAM: No modules detected - ${empty_slots} empty slots ${ram_type}" >>"$OUT_FILE"
else
echo -e "RAM: ${total} GB - ${sizes} ${ram_type} - ${empty_slots} empty slots" >>"$OUT_FILE"
fi
}