5 # Copyright 2010 Rene Ejury <opennet@absorb.it> 6 # Copyright 2014 Lars Kruse <devel@sumpfralle.de> 8 # Licensed under the Apache License, Version 2.0 (the "License"); 9 # you may not use this file except in compliance with the License. 10 # You may obtain a copy of the License at 12 # http://www.apache.org/licenses/LICENSE-2.0 16 # u = undefinierten Variablen 20 # fuer Entwicklungszwecke: uebermaessig ausfuehrliche Ausgabe aktivieren 21 [
"${ON_DEBUG:-}" =
"1" ] &&
set -x
26 # siehe Entwicklungsdokumentation (Entwicklungshinweise -> Shell-Skripte -> Fehlerbehandlung) 27 trap
'error_trap __main__ "$*"' EXIT
30 # Schreibe eine log-Nachricht bei fehlerhaftem Skript-Abbruch 31 # Uebliche Parameter sind der aktuelle Funktionsname, sowie Parameter der aufgerufenen Funktion. 32 # Jede nicht-triviale Funktion sollte zu Beginn folgende Zeile enthalten: 33 # trap 'error_trap FUNKTIONSNAME_HIER_EINTRAGEN "$*"' EXIT 35 # dies ist der Exitcode des Skripts (im Falle der EXIT trap) 37 local message=
"ERROR [trapped]: '$*'" 38 [
"$exitcode" = 0 ] && exit 0
45 # Minimieren aller Shell-Module durch Entfernen von Kommentar- und Leerzeilen 46 # Alle Modul-Dateien werden gelesen, minimiert und anschliessend in eine Cache-Datei 47 # geschrieben. Die Zeitstempel der Shell-Module werden bei jedem Start mit dem der 48 # Cache-Datei verglichen und letztere bei Bedarf erneuert. 49 # Diese Minimierung reduziert die Laufzeit bei einfachen Funktionsaufrufen um ca. 10%. 50 ON_SHELL_MINIMIZED=
"${IPKG_INSTROOT:-}/tmp/on_shell_modules.cache" 51 ON_SHELL_MODULES_DIR=
"${IPKG_INSTROOT:-}/usr/lib/opennet" 52 ON_SHELL_MODULES=$(find
"$ON_SHELL_MODULES_DIR" -maxdepth 1 -type f -name
"*.sh")
53 # shellcheck disable=SC2086
54 ON_SHELL_MODULES_NEWEST=$( (ls -dtr
"$ON_SHELL_MODULES_DIR" $ON_SHELL_MODULES
"$ON_SHELL_MINIMIZED" 2>/dev/
null ||
true) | tail -1)
55 # shellcheck disable=SC2046
56 [
"$ON_SHELL_MODULES_NEWEST" !=
"$ON_SHELL_MINIMIZED" ] && \
57 grep -vh
"^[[:space:]]*#" $(echo
"$ON_SHELL_MODULES" \
58 | grep -vF
"on-helper.sh") \
59 | sed
's/^[[:space:]]\+//' \
61 >
"${ON_SHELL_MINIMIZED}.$$" && mv
"${ON_SHELL_MINIMIZED}.$$" "$ON_SHELL_MINIMIZED" 62 # shellcheck disable=SC1090 63 .
"$ON_SHELL_MINIMIZED" 67 rm -f
"$ON_SHELL_MINIMIZED" 68 clear_cache_opennet_opkg
set eu grep root::etc shadow exit if command v chpasswd dev null
msg_info(message)
Informationen und Fehlermeldungen ins syslog schreiben.