Arbeiten mit darktable von einem Lua Skript
Warnung: Diese Möglichkeit ist sehr experimentell. Es ist bekannt, dass mehrere Elemente bis jetzt im Library Modus nicht funktionieren. Ein vorsichtiges Testen ist sehr empfohlen.
Die Lua Schnittstelle erlaubt es dir darktable von jedem Lua Skript aus zu nutzen. Das wird dann darktable als Library laden und das Meiste von Lua API (darktable ist ohne Titelzeile, so die Funktionen, die sich auf die Nutzerschnittstelle beziehen, sind nicht vorhanden)
Als Beispiel, das folgende Programm wird eine Liste aller Bilder in deiner Bibliothek ausdrucken:
#!/usr/bin/env lua
package = require "package"
package.cpath=package.cpath..";./lib/darktable/lib?.so"
dt = require("darktable")(
"--library", "./library.db",
"--datadir", "./share/darktable",
"--moduledir", "./lib/darktable",
"--configdir", "./configdir",
"--cachedir","cachedir",
"--g-fatal-warnings")
require("darktable.debug")
for k,v in ipairs(dt.database) do
print(tostring(v))
end
Beachte die dritte Linie, die auf die Datei von libdarktable.so
zeigt.
Beachte auch, dass der Aufruf, um Returns zu verlangen, eine Funktion, die nur einmal aufgerufen werden kann und es dir erlaubt die darktable Kommandolinien Parameter zu setzen. Der Parameter :memory:
zu --library
ist hier sehr nützlich, wenn du nicht auf deiner persönlichen Library arbeiten willst.