diff --git a/screen.sh b/screen.sh new file mode 100644 index 0000000..10932b9 --- /dev/null +++ b/screen.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# 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 "No connected display found." + 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 "Could not determine physical screen size." + 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) +return ${diagonal_in%.*} \ No newline at end of file diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..3413123 --- /dev/null +++ b/test.sh @@ -0,0 +1,83 @@ +#!/bin/bash + + +DIR="${BASH_SOURCE%/*}" +DESKTOP_PATH=$(xdg-user-dir DESKTOP) +OUT="$DESKTOP_PATH/info.txt" + + +if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi + +get_cpu_model () { + CPUModel=$(cat /proc/cpuinfo | grep "model name" | head -1 | cut -d: -f2- | sed 's/^[[:space:]]*//' ) +} + +get_model () { +MODEL=$(cat /sys/class/dmi/id/product_name) +} + +get_RAM () { +LANGUAGE="${LC_MESSAGES:-$LANG}" + + +if [[ "$LANGUAGE" == de* ]]; then + TOTAL_MEM=$(free -g | grep Speicher: | awk '{print $2}') +elif [[ "$LANGUAGE" == en* ]]; then + TOTAL_MEM=$(free -g | awk '/^Mem:/ {print $2}') +fi + +} + +. "$DIR/lan.sh" +get_cpu_model +get_model +get_RAM +clear +echo -e "$(date -I)" >"$OUT" +echo -e "CPU:\t$CPUModel" >>"$OUT" +echo -e "Model:\t$MODEL" >>"$OUT" +echo -e "RAM:\t$TOTAL_MEM GB" >> "$OUT" + +. "$DIR/camera.sh" +retval=$? +if [ "$retval" == 0 ] +then + echo -e "Kamera:\t Ja" >>"$OUT" +else + echo -e "Kamera:\t Nein" >>"$OUT" +fi + + +. "$DIR/wifi.sh" +retval=$? +if [ "$retval" == 0 ] ; then + echo -e "WIFI:\t Ja" >>"$OUT" +else + echo -e "WIFI:\t Nein" >>"$OUT" +fi + +. "$DIR/screen.sh" + +in_retval=$? +if [ "$in_retval" != 0 ] +then + echo -e "Screen:\t $in_retval" >>"$OUT" +else + echo -e "Screen check failed" >>"$OUT" +fi + +#clear +cat "$OUT" + +echo "Fertig." + +read -p "Script Löschen? - (y/n): " answer + +if [[ "$answer" == [Yy] ]]; then + rm /usr/local/bin/csr_info/* + rm $DESKTOP_PATH/CSR_INFOS.desktop +else + true +fi + +read -n 1 -s -r -p "Beenden mit Tastendruck" \ No newline at end of file diff --git a/wifi.sh b/wifi.sh new file mode 100644 index 0000000..34a1e27 --- /dev/null +++ b/wifi.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +SSID="CSR" +PASSWORD="CSR_2021" + +nmcli connection delete $SSID #delete network to safely test + +if [[ -z "$SSID" || -z "$PASSWORD" ]]; then + echo "Usage: $0 " + 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" + 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" + 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" + 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" + return 5 +fi + +echo "Internet funktioniert!" +return 0