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
a simple storage to export images via scp
AUTHOR
Jérémy Rosen (jeremy.rosen@enst-bretagne.fr)
INSTALLATION
* copy this file in $CONFIGDIR/lua/
* add the following line in the file $CONFIGDIR/luarc
require "scp-storage"
USAGE
* select "Export via SCP" in the storage selection menu
* set the target directory
* export your 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 = "Complete path to copy to. Can include user and hostname",
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 failed for "..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…
-
$CONFIGDIRreprésente le répertoire de configuration de darktable. -
The function
dtutils.check_min_api_versionwill check compatibility for you."7.0.0"is the API version you have tested your script with and the “...” will turn into your script’s name. -
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.