usar o darktable a partir de um script lua
Advertência: esta função é muito experimental. É sabido que diversos elementos não funcionam ainda no modo biblioteca. Cautela ao testar é altamente recomendável.
A interface do lua permite que você use o darktable a partir de qualquer script do lua. Isto carregará o darktable como uma biblioteca e lhe proporcionará a maior parte da API lua (o darktable está configurado sem cabeçalho, assim as funções relacionadas à interface do usuário não estão disponíveis).
Como exemplo, o seguinte programa imprimirá a lista de todas as imagens em sua biblioteca:
#!/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
Note que a terceira linha aponta a localização do arquivo libdarktable.so
.
Note também que a chamada de requisição retorna uma função que pode ser chamada somente uma vez e permite que você defina o parâmetro de linha de comando do darktable. O parâmetro : memory:
de --library
é útil aqui se você não deseja trabalhar em sua biblioteca pessoal.