summaryrefslogtreecommitdiffstats
path: root/core/modules/kdm-theme-bwlp/data/opt/openslx/scripts/systemd-kdm_hwinfo_warnings
blob: 8b37de809624372fea4fda36d2e4c907433ea540 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/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='
<item type="label">
	<normal color="_COLOR_" font="Sans 11"/>
	<text>_TEXT_</text>
</item>'
	. "/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 \&lt;
	# 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