Ich war jetzt das WE über mal gar nicht online (so drei Tage selbstverordnete Abstinenz, weil mir jemand einreden wollte, ich wäre "internetsüchtig" - mich würde wirklich mal interessieren, ob der dem Tischler auch erklärt, der wäre hammersüchtig, weil er die Finger an 5 Tagen in der Woche nicht davon lassen kann) - daher habe ich etwas den Faden verloren.
Als "Anleitung", wie man das mit der "/bin/luavar" benutzen kann, sollten doch eigentlich die Beispiele im Repository dienen können ... die benutzen ja auch "print"-Statements, so daß man tatsächlich sieht, daß/ob sie ausgeführt werden. So eines müßte man ja nur mal nehmen und kopieren ... schon sind die Unklarheiten bzgl. des richtigen SheBang Geschichte.
Das "luavar"-Binary läßt sich jedenfalls (m.W., ich habe es zumndest nicht hinbekommen) nicht direkt aufrufen unter Angabe einer Datei mit Lua-Statements ... das habe ich auch irgendwo mal dazugeschrieben. Ich konnte auch nicht wirklich auf Parameter von der Kommandozeile aus dem Lua-Text zugreifen ... ein weiterer Grund, warum ich das bisher nur so eingesetzt habe, daß es von der "exec()"-Funktion des Kernels direkt aufgerufen wird (und dazu muß das über das SheBang erfolgen).
Ansonsten setzt "luavar" m.W. selbst den richtigen Suchpfad für Lua-Module (der dürfte einkompiliert sein) ... das folgende Skript (
hier zum ersten Mal erwähnt) funktioniert jedenfalls bei mir (113.06.92, soeben geprüft):
Code:
#! /bin/luavar
txtlib = require("libluatextdb")
while true do
local line = io.read("*line");
if (line == nil) then
break;
end
local text = txtlib.get_text(line);
print(text);
end
Da dort auch kein Pfad angegeben ist, wird die Bibliothek wohl über den internen Pfad gefunden.
Hier wäre das (generelle) "Handbuch" zum "require" (und zu Lua im Allgemeinen, wenn man ins Inhaltsverzeichnis schaut):
https://www.lua.org/pil/8.1.html - wenn man das Modul hinterher benutzen will, weist man es eben einer Variablen zu (die verschiedenen Formen des Aufrufs sind irgendwo im Internet dokumentiert).
Das Interface von "luavar" ist auch nicht so ganz komplett (siehe Parameter-Handling und "Aufrufmöglichkeiten") und es ist auch nicht klar, welche Lua-Version AVM verwendet.
Es wäre denkbar, daß sich die "foncalls.lua" tatsächlich nicht ohne weiteres per "require" einbinden läßt ... mangels Fehlernachrichten (aus "luavar" heraus) ist das schwer zu testen (gegen echte Syntax-Fehler hilft aber eine eigene Lua-Version auf der Box, die Freetz-Toolchain kann z.B. eine generieren), wo es klemmt.
Da wären noch genug Abhängigkeiten und Konstrukte in der "foncalls.lua" denkbar, die das Einbinden verhindern könnten ... dann muß man eben direkt auf die "libcallloglua" zurückgreifen:
Code:
#! /bin/luavar
calllog = require("libcallloglua")
calls = calllog.GetAll(15)
print(#calls)
Die "15" hinter dem "GetAll" wird bei AVM durch "typemask" aus den möglichen Definitionen im Textformat zusammengebastelt (siehe foncalls.lua) ... wer alle Anrufe haben will (also die "Anrufliste", die aber die aktiven nicht enthält), setzt einfach eine "7" ein.
Das oben liefert jedenfalls eine "0", wenn kein Anruf läuft ... ob es auch "1" (bis "n") liefert, wenn ein Telefonat aktiv ist, habe ich nicht selbst getestet - als "Anregung" für weitere eigene Experimente sollte das (auch in Kombination mit der "update.lua") ausreichen.