En el siguiente artículo, exploraremos las capacidades de integración
de sinadura en el escritorio Gnome a través de las acciones y scripts
de Nautilus, en el caso de uso de firma recursiva de ficheros PDF que
se encuentren por debajo de un directorio seleccionado.
Firma recursiva a través de scripts de nautilus:
Un motor de scripting de Gnome es nautilus-scripts
$ sudo aptitude nautilus-scripts
Simplemente alojando un script de shell como el que se muestra
más abajo (re-sign.sh) en $HOME/.gnome2/nautilus-scripts/, podemos
ejecutarlo en el menú contextual Scripts, con el botón derecho. El
motor es menos potente que las acciones de nautilus, pues no es
posible implementar condiciones, pero puede ser útil en muchas ocasiones.
#! /bin/sh # # re-sign.sh # # Script de firma recursiva con sinadura 2.0 # # Uso: re-sign.sh <directorio a firmar>" # SINADURA_HOME=/home/cesar/local/sinadura PREFERENCES=/home/cesar/local/sinadura/resources/preferences/preferences-sinadura-console.properties LOGFILE=$HOME/.sinadura.log RESFILE=$HOME/.sinadura-output.log if [ -z $2 ]; then MYDIR=$PWD/$1 else MYDIR=$2/$1 fi /usr/bin/find $MYDIR -type f -name *pdf > $LOGFILE echo "Sinadura 2.0 (by zylk.net & irontec)" 2>&1 >> $RESFILE echo 2>&1 >> $RESFILE echo "Firmando documentos:" 2>&1 >> $RESFILE while read file do base=`dirname "$file"`/`basename "$file" .pdf`; echo $file 2>&1 >> $RESFILE (cd $SINADURA_HOME; /bin/sh ./bin/sinadura-console -input $file -output $base-signed.pdf -preferences $PREFERENCES 2>&1 >> $RESFILE) done < $LOGFILE echo 2>&1 >> $RESFILE echo "Hecho!" 2>&1 >> $RESFILE echo "http://www.sinadura.net" 2>&1 >> $RESFILE zenity --text-info --title="Sinadura info:" --filename=$RESFILE --width=600 --height=400 rm -f $RESFILE

Seleccionado un directorio, el script buscará los archivos PDF
por debajo de la ruta seleccionada y firmará los diferentes archivos
encontrados. A través del comando zenity
se mostrará al final del proceso una pequeña ventana de log con los
archivos firmados.

Firma recursiva a través de acciones de nautilus:
El script de shell anterior puede invocarse desde las acciones
de nautilus al seleccionar una carpeta, y ejecutar una firma recursiva
de todos los archivos PDF por debajo del directorio seleccionado, de
manera análoga al artículo anterior de esta serie. Defino la acción de la misma
manera que en el anterior artículo de esta serie, configurando los
parámetros y la condición correspondiente, esta vez sobre una carpeta
seleccionada y voila.
La acción se define en el menú de acciones de nautilus.

La acción se aplica esta vez si se selecciona un directorio:

La acción se ejecuta con el script re-sign.sh que es compatible con
ambos motores:

Y la ejecución desde el menú contextual, seleccionado el
directorio Facturas:
