#!/bin/ash patch_kdm_theme() { local THEME_FILE="/usr/share/desktop/themes/kdm/bwlehrpool/theme.xml" [ -s "$THEME_FILE" ] || return 0 local TMP=$(mktemp) [ -z "$TMP" ] && TMP="/tmp/kdm-$$-$(whoami)-$?-$!-tmp" sed '/INFO_START_MARKER/,/INFO_END_MARKER/{//!d};/INFO_START_MARKER/a REPLACE_MARKER' "$THEME_FILE" > "$TMP" local DATA= build_replacement_xml awk -v r="$DATA" '{gsub(/REPLACE_MARKER/,r)}1' "$TMP" > "$THEME_FILE" } build_replacement_xml() { local TEMPLATE=' _TEXT_ ' . "/run/hwinfo" local CONTACT_RZ= # Warning: add_replace_xml doesn't escape <>& (XML), and also doesn't escape , and & (sed), so e.g. < should be written as \< # Also don't use # as it's the sed delimiter if [ "$HW_KVM" = "DISABLED" ]; then add_replace_xml "ff0000" "* 64Bit-Gast-Support (VT-x oder AMD-V) ist im BIOS deaktiviert. 64Bit VMs können nicht gestartet werden." CONTACT_RZ=jau elif [ "$HW_KVM" = "UNSUPPORTED" ]; then add_replace_xml "000000" "* CPU hat keinen 64Bit-Gast-Support (VT-x oder AMD-V). 64Bit VMs können nicht gestartet werden." fi if [ -n "$HW_MBRAM" ] && [ "$HW_MBRAM" -lt 3400 ]; then local GB=$(( ( HW_MBRAM + 300 ) / 1024 )) add_replace_xml "000000" "* Dieser PC hat wenig RAM (${GB}GB). Die Leistung von VM-Sitzungen wird nicht optimal sein." fi if [ "$HW_ID44" = "0" ]; then add_replace_xml "000000" "* Keine ID44-Partition gefunden. VMs bekommen wenig RAM zugewiesen." if [ "$HW_HDDCOUNT" = "0" ]; then add_replace_xml "000000" " Keine Festplatte erkannt; eine Festplatte wird empfohlen, wenn Sie VMs nutzen wollen." elif [ -n "$HW_HDDCOUNT" ]; then CONTACT_RZ=klar fi if [ -n "$HW_MBRAM" ] && [ "$HW_MBRAM" -lt 4500 ]; then add_replace_xml "ff0000" " Da der PC wenig RAM hat, ist die Einrichtung einer ID44-Partition dringend zu empfehlen." fi elif [ -n "$HW_ID44" ] && [ "$HW_ID44" -lt 10000 ]; then add_replace_xml "000000" "* Die ID44-Partition ist sehr klein. VM-Sitzungen könnten nach einiger Zeit aus Speichermangel abstürzen." CONTACT_RZ=fjeden fi if ! systemctl status mount-vm-store >/dev/null; then add_replace_xml "ff0000" "* Der VM-Store konnte nicht eingehängt werden. VMs können nicht gestartet werden." add_replace_xml "ff0000" " Versuchen Sie das Problem zu lösen, indem Sie den Computer neu starten." fi if [ -n "$CONTACT_RZ" ]; then add_replace_xml "000000" " -- " add_replace_xml "000000" " -- Wenden Sie sich ggf. an den bwLehrpool-Support Ihres Rechenzentrums -- " fi } add_replace_xml() { [ -z "$DATA" ] && DATA=$(echo "$TEMPLATE" | sed "s,_COLOR_,#000000,;s,_TEXT_,Hinweise für den Admin/Hardware-Betreuer:,") DATA="$DATA $(echo "$TEMPLATE" | sed "s,_COLOR_,#$1,;s#_TEXT_#$2#")" } patch_kdm_theme