compartilhar scripts
Até agora, todo nosso código lua esteve no luarc. Esta é uma boa maneira de desenvolver seu script mas não é muito prático para distribuição. Nós precisamos tornar isto um módulo lua adequado. Para fazer isso, nós devemos salvar o código em um arquivo separado (scp-storage.lua
neste caso):
--[[
SCP STORAGE
um storage simples para exportar imagens via scp
AUTOR
Jérémy Rosen (jeremy.rosen@enst-bretagne.fr)
INSTALAÇÃO
* copie este arquivo em $CONFIGDIR/lua/ onde CONFIGDIR
é sua pasta de configuração do darktable
* adicione a seguinte linha no arquivo $CONFIGDIR/luarc
require “scp-storage”
USO
* selecione “Exportar via SCP” no menu de seleção “armazenar em”
* defina a pasta de destino
* exporte suas imagens
LICENSE
GPLv2
]]
darktable = require "darktable"
darktable.configuration.check_version(...,{2,0,0})
local scp_path = darktable.new_widget("entry"){
tooltip ="Complete o caminho para cópia. Pode incluir usuário e nome da máquina",
text = "",
reset_callback = function(self) self.text = "" end
}
darktable.register_storage("scp_export","Exportar via scp",
function( storage, image, format, filename,
number, total, high_quality, extra_data)
if coroutine.yield("RUN_COMMAND","scp "..filename.." "..
scp_path.text
) then
darktable.print_error("scp falhou para "..tostring(image))
end
end,
nil, --finalize
nil, --supported
nil, --initialize
darktable.new_widget("box") {
orientation ="horizontal",
darktable.new_widget("label"){label = "target SCP PATH "},
scp_path,
})
O darktable buscará scripts (seguindo as regras normais do lua) nas pastas padrão mais a $CONFIGDIR/lua/*.lua
. Assim, nosso script pode ser chamado simplesmente adicionando require “scp-storage”
no arquivo luarc. Algumas notas adicionais…
-
A função
darktable.configuration.check_version
verificará a compatibilidade para você. O “...
” se converterá no seu nome de script e{2,0,0}
é a versão da API com a qual você testou seu script. Você pode adicionar múltiplas versões de API se atualizar seu script para múltiplas versões do darktable. -
Certifique-se de declarar todas suas funções como
local
para não contaminar o espaço de nomes em geral. -
Certifique-se de não deixar impressões de depuração em seu código –
darktable.print_error
em particular lhe permite deixar impressões de depuração no final do código sem incomodar o console. -
Você está livre para usar qualquer licença para seu script, mas scripts que são carregados na página Web do darktable precisam ser GPLv2.
Uma vez que tenha preenchido todos os campos, verificado se código, você pode enviá-lo para nossa página de scripts aqui.