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.

translations