ordered into /lib
put all subscripts into lib for readability
This commit is contained in:
46
lib/RAM.sh
Executable file
46
lib/RAM.sh
Executable 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
30
lib/battery.sh
Executable 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
14
lib/camera.sh
Normal 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
25
lib/drives.sh
Normal 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
27
lib/lan.sh
Normal 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
13
lib/model.sh
Normal 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
38
lib/screen.sh
Normal 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
13
lib/speaker.sh
Executable 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
66
lib/wifi.sh
Normal 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
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user