ordered into /lib

put all subscripts into lib for readability
This commit is contained in:
2026-07-14 16:56:28 +02:00
parent 925c624351
commit 20781c9d90
11 changed files with 6 additions and 20 deletions

46
lib/RAM.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/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
}

30
lib/battery.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
function BATTERY(){
local OUT_FILE=$1
for b in /sys/class/power_supply/BAT*; do
[ -d "$b" ] && BATTERY="$b" && break
done
if [ -z "$BATTERY" ]; then
echo -e "Kein akku gefunden">>"$OUT_FILE"
return 1
fi
if [ -f "$BATTERY/capacity" ]; then
CAPACITY=$(cat "$BATTERY/capacity")
else
echo -e "Akku kann nicht gelesen werden">>"$OUT_FILE"
return 1
fi
if [ "$CAPACITY" -gt 0 ]; then
echo -e "Akku bei $CAPACITY % ">>"$OUT_FILE"
return 0
else
echo -e "Akkustand 0%, prüfen">>"$OUT_FILE"
return 1
fi
}

14
lib/camera.sh Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
function CAMERA(){
local OUT_FILE=$1
snapshot >/dev/null 2>&1 & disown
read -p "Funktioniert Kamera? Snapshot öffnet sich - (y/n): " answer
#output
if [[ "$answer" == [Yy] ]]; then
echo -e "Kamera:\t Ja" >>"$OUT_FILE"
else
echo -e "Kamera:\t Nein" >>"$OUT_FILE"
fi
}

25
lib/drives.sh Normal file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
function drives(){
local OUT_FILE=$1
DISKS=$(lsblk -d -n -o NAME,TYPE | awk '$2=="disk"{print $1}')
for disk in $DISKS; do
DEV="/dev/$disk"
SIZE=$(lsblk -d -n -o SIZE "$DEV")
MODEL=$(lsblk -d -n -o MODEL "$DEV" | sed 's/ *$//')
TRAN=$(lsblk -d -n -o TRAN "$DEV")
ROTA=$(cat /sys/block/$disk/queue/rotational 2>/dev/null)
TYPE="Unknown"
# NVMe drives are typically M.2 (or PCIe SSD)
if [[ "$disk" == nvme* ]]; then
TYPE="M.2 / NVMe SSD"
else
if [[ "$ROTA" == "1" ]]; then
TYPE="HDD"
elif [[ "$ROTA" == "0" ]]; then
TYPE="SSD"
fi
fi
echo -e "DEV:$DEV\tSIZE:$SIZE\tTYPE:$TYPE" >>"$OUT_FILE"
done
}

27
lib/lan.sh Normal file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
function LAN_CABLE(){
for iface in /sys/class/net/*; do
iface_name=$(basename "$iface")
if [[ "$iface_name" == "lo" ]]; then
continue
fi
if [[ "${iface_name:0:2}" == "wl" ]]; then
continue
fi
if [[ -f "$iface/carrier" ]]; then
carrier=$(cat "$iface/carrier")
if [[ "$carrier" == "1" ]]; then
echo "Bitte LAN Kabel entfernen"
read -n 1 -s -r -p "Any key to continue"
return 0
fi
fi
done
echo "LAN cable is NOT connected"
return 1
}

13
lib/model.sh Normal file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
function MODEL(){
local OUT_FILE=$1
MODEL=$(cat /sys/class/dmi/id/product_name)
echo -e "Model:\t$MODEL" >>"$OUT_FILE"
sudo hostnamectl set-hostname "csr-$MODEL"
}
function CPU(){
local OUT_FILE=$1
CPUModel=$(cat /proc/cpuinfo | grep "model name" | head -1 | cut -d: -f2- | sed 's/^[[:space:]]*//' )
echo -e "CPU:\t$CPUModel" >>"$OUT_FILE"
}

38
lib/screen.sh Normal file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
function SCREEN(){
local OUT_FILE=$1
# Get primary display name
display=$(xrandr --query | awk '/ connected primary/{print $1}')
# If no primary, use first connected
if [ -z "$display" ]; then
display=$(xrandr --query | awk '/ connected/{print $1; exit}')
fi
if [ -z "$display" ]; then
echo -e "No connected display found." >>"$OUT_FILE"
exit 1
fi
# Get physical dimensions line for that display
dim_line=$(xrandr --query | grep "^$display connected")
# Extract width and height in mm
width_mm=$(echo "$dim_line" | sed -n 's/.* \([0-9]\+\)mm x \([0-9]\+\)mm.*/\1/p')
height_mm=$(echo "$dim_line" | sed -n 's/.* \([0-9]\+\)mm x \([0-9]\+\)mm.*/\2/p')
if [ -z "$width_mm" ] || [ -z "$height_mm" ]; then
echo -e "Could not determine physical screen size." >>"$OUT_FILE"
exit 1
fi
# Calculate diagonal in mm
diagonal_mm=$(echo "scale=4; sqrt($width_mm^2 + $height_mm^2)" | bc -l)
# Convert to inches
diagonal_in=$(echo "scale=2; $diagonal_mm / 25.4" | bc -l)
echo -e "Screen:\t ${diagonal_in%.*}" >>"$OUT_FILE"
return 0
}

13
lib/speaker.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
function SPEAKER(){
local OUT_FILE=$1
audacious ./stereo_test.mp3 >/dev/null 2>&1 & disown
read -p "Funktioniert Sound? Audacios öffnet sich - (y/n): " answer
if [[ "$answer" == [Yy] ]]; then
echo -e "Speaker:\t Ja" >>"$OUT_FILE"
else
echo -e "Speaker:\t Nein" >>"$OUT_FILE"
fi
}

66
lib/wifi.sh Normal file
View File

@@ -0,0 +1,66 @@
#!/bin/bash
function WIFI(){
local OUT_FILE=$1
SSID="CSR_Gastzugang"
PASSWORD="CSR_2021"
#delete network to safely test
nmcli connection delete $SSID
if [[ -z "$SSID" || -z "$PASSWORD" ]]; then
echo "Usage: $0 <SSID> <PASSWORD>"
echo -e "WIFI:\t Nein" >>"$OUT_FILE"
return 1
fi
echo "Verbinde: $SSID ..."
nmcli dev wifi connect "$SSID" password "$PASSWORD" >/dev/null 2>&1
if [[ $? -ne 0 ]]; then
echo "Verbinding fehlgeschlagen $SSID"
echo -e "WIFI:\t Nein" >>"$OUT_FILE"
return 2
fi
echo "Verbindsaufbau..."
# Wait up to 15 seconds for connection
for i in {1..15}; do
STATE=$(nmcli -t -f WIFI g)
if [[ "$STATE" == "enabled" ]]; then
CONN=$(nmcli -t -f ACTIVE,SSID dev wifi | grep '^ja' | cut -d: -f2)
if [[ "$CONN" == "$SSID" ]]; then
echo "Verbunden mit $SSID"
break
fi
fi
sleep 1
done
if [[ "$CONN" != "$SSID" ]]; then
echo "Verbindingsfehler"
echo -e "WIFI:\t Nein" >>"$OUT_FILE"
return 3
fi
echo "Teste (ping 8.8.8.8)..."
ping -c 3 8.8.8.8 >/dev/null 2>&1
PING_STATUS=$?
if [[ $PING_STATUS -ne 0 ]]; then
echo "Kein Internet"
echo -e "WIFI:\t Nein" >>"$OUT_FILE"
return 4
fi
echo "Ping Erfolg"
echo "Teste HTTP..."
curl -s --max-time 5 https://google.com >/dev/null 2>&1
CURL_STATUS=$?
if [[ $CURL_STATUS -ne 0 ]]; then
echo "HTTP fehlgeschlagen"
echo -e "WIFI:\t Nein" >>"$OUT_FILE"
return 5
fi
echo "Internet funktioniert!"
echo -e "WIFI:\t Ja" >>"$OUT_FILE"
return 0
}