Partage de scripts

Jusqu’à présent, tout notre code Lua était dans luarc. C’est un bon moyen de développer votre script mais pas très pratique pour la distribution. Nous devons en faire un module Lua dédié. Pour ce faire, nous sauvegardons le code dans un fichier séparé (ici scp-storage.lua) :

--[[
SCP STORAGE
un stockage simple pour exporter des images via scp

AUTHOR
Jérémy Rosen (jeremy.rosen@enst-bretagne.fr)

INSTALLATION
* copier ce fichier dans $CONFIGDIR/lua/
* ajouter la ligne suivante dans $CONFIGDIR/luarc
  require "scp-storage"

USAGE
* sélectionner "Export via SCP" dans le menu de sélection du stockage
* choisir le répertoire cible 
* exporter vos images

LICENSE
GPLv2

]]

darktable = require "darktable"
dtutils = require "lib/dtutils"

dtutils.check_min_api_version("7.0.0", ...)

local scp_path = darktable.new_widget("entry"){
  tooltip = "Chemin complet vers lequel copier. Peut inclure l'utilisateur et le nom d'hôte",
  text = "",
  reset_callback = function(self) self.text = "" end
}

darktable.register_storage("scp_export","Export via scp",
  function( storage, image, format, filename,
     number, total, high_quality, extra_data)
    if not darktable.control.execute("scp "..filename.." "..
      scp_path.text
    ) then
      darktable.print_error("scp a échoué à cause de "..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,
})

darktable recherche les scripts *.lua (en suivant les règles Lua normales) dans le répertoire $CONFIGDIR/lua. Ainsi, notre script peut être appelé en ajoutant simplement require “scp-storage” dans le fichier luarc. Quelques notes supplémentaires…

  • $CONFIGDIR représente le répertoire de configuration de darktable.

  • La fonction dtutils.check_min_api_version vérifiera la compatibilité pour vous. "7.0.0" est la version API avec laquelle vous avez testé votre script et le “...” deviendra le nom de votre script.

  • Assurez-vous de déclarer toutes vos fonctions comme locales afin de ne pas polluer l’espace de noms global.

  • Assurez-vous de ne pas laisser de messages de débogage dans votre code – utilisez darktable.print_error pour laisser des traces de débogage dans votre code final sans polluer la console.

  • Vous êtes libre de choisir n’importe quelle licence pour votre script, mais les scripts téléchargés sur le site Web de darktable doivent être GPLv2.

Une fois que vous avez rempli tous les champs, vérifié votre code, vous pouvez le télécharger sur notre page de script ici.

translations