Lua-API

Lua ist eine einfache aber mächtige Scriptsprache (siehe http://www.lua.org). Die meisten Funktionen, in denen LiveConfig mit anderen Programmen interagiert oder Konfigurationsdateien erzeugt sind in Lua programmiert. Diese Scripte liegen im Quelltext vor, so dass Anpassungen an spezielle Anforderungen ziemlich einfach sind.

Funktionsweise

Die Lua-Programme liegen unter /usr/lib/liveconfig/lua/ (bzw. <library_path>/lua/ - siehe library_path), sowohl bei einem LiveConfig-Server als auch bei einem LiveConfig-Client (lcclient).

When LiveConfig starts, multiple threads for system management are started. Each of these threads contains its own Lua environment. Each Lua environment first loads its internal libraries (like LC.expect, LC.sys, and so on), then the main script liveconfig.lua is run. This loads all other Lua modules (LC.web, LC.dns etc.), all files in /etc/liveconfig/lua.d/*.lua and finally a file called custom.lua (if existing).

custom.lua

Wenn Sie Lua-Funktionen modifizieren müssen, empfehlen wir dringend diese Änderungen nicht direkt in den vorhandenen Lua-Scripten vorzunehmen, da diese beim nächsten LiveConfig-Update überschrieben werden. Erzeugen Sie statt dessen eine Datei namens custom.lua (unter /usr/lib/liveconfig/lua oder unter /etc/liveconfig/lua.d/).

Wichtig

Nach Änderungen an der custom.lua oder irgendeinem anderen Lua-Script muss LiveConfig neu gestartet werden, damit die Änderungen wirksam werden.

Vorsicht

Wenn Sie irgendwelche Änderungen an den Lua-Programmen vornehmen (auch durch Erstellung einer eigenen custom.lua), übernehmen wir keine Verantwortung für eventuelle Fehler.

Bitte prüfen Sie Ihre eigenen Funktionen äußerst sorgfältig bevor Sie diese in Produktivbetrieb nehmen!

Testen eigener Programme

Zum Testen eigener Lua-Scripte können Sie das Programm lclua verwenden (wird mit LiveConfig installiert, normalerweise unter /usr/lib/luveconfig/lclue). Dieser Lua-Interpreter enthält alle Lua-Module von LiveConfig.

Beispiel-Code

Wenn Sie beispielsweise die Erkennung der Linux-Distribution anpassen möchten, könnte die Datei custom.lua etwa so aussehen:

-- introduce namespace "MY":
MY = { }

-- keep original function "LC.distribution.detect"
MY.orig_detect = LC.distribution.detect

-- redirect function for distribution detection:
function LC.distribution.detect()
  if (LC.fs.is_file("/etc/exampLinux")) then
    -- we have an "ExampleLinux"...
    LC.distribution.name        = "ExampLinux"
    LC.distribution.codename    = "example"
    LC.distribution.family      = "Debian"
    LC.distribution.version     = "1.0"
    LC.distribution.description = "Example Linux 1.0 (example)"
    return true
  else
    -- call original function for distribution detection:
    return MY.orig_detect()
  end
end

LiveConfig Lua-Module

Die folgenden Module werden von LiveConfig bereitgestellt:


Zuletzt aktualisiert am 29.06.2020.
weiter: LC.crypt.*
zurück: UserGet