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.
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.
$ sudo aptitude nautilus-scripts
#! /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.
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 menu 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: