Guiones de gancho gphoto2: ¿una guía?

Guiones de gancho gphoto2: ¿una guía?

Publiqué esto en raspberrypi.stackexchange pero fue dirigido aquí. Soy nuevo en Linux/Unix y estoy intentando conseguir un script de conexión/pantalla con gphoto2.

gphoto2 --capture-tethered --hook-script=myhookscript.sh \
    --filename="/home/media/usbpendrive/image-%Y%m%d-%H%M%S.jpg" \
    --force-overwrite

Se supone que esto debe descargar la imagen a mi memoria USB y luego buscar nuevos comandos en el hookscript.

El siguiente paso sería utilizar qivun visor de imágenes similar para buscar la última captura en la carpeta y luego mostrarla en pantalla completa. Me gustaría que alguien me explicara en términos sencillos cómo hacer este script de gancho.

Respuesta1

Gphoto pasa $ACTIONy $ARGUMENTal script de gancho, que puedes usar.

Como ejemplo:-

#!/bin/bash

if [ $ARGUMENT ]; then
    if [[ $ARGUMENT =~ .+\.[jpg|JPG] ]]
    then
    # Then next few lines are optional
    # Alternatively pass $ARGUMENT directly to your image viewer eg:-
    # /usr/bin/shotwell "$ARGUMENT" &
    DIRNAME=$(dirname "$ARGUMENT")
    BASENAME=$(basename "$ARGUMENT")
    NEWFILENAME="$DIRNAME/my_new_folder/$BASENAME"
    mv "$ARGUMENT" "$NEWFILENAME"
            /usr/bin/shotwell "$NEWFILENAME" &
    fi
fi

Esto abre el archivo en formato shotwell, pero es fácil cambiarlo a su visor preferido.

La segunda ifdeclaración asegura que shotwell solo se use si el archivo descargado es un JPG, ya que a veces tenía la cámara configurada para crear raw (CR2 en una Canon) que no se abría en shotwell. Supongo que podría ampliarse para abrirlos con otro espectador.

La imagen se guardará como el argumento proporcionado a --filename- en su caso /home/media/usbpendrive/image-20140616-125500.jpg. Ese será el valor almacenado $ARGUMENTy pasado a su script de enlace.

Puede usar dirnamey basenamepara dividir esta ruta y nombre de archivo en sus partes relevantes y luego reutilizarlos para crear una nueva ruta y nombre de archivo para la imagen.

$dirname /home/media/usbpendrive/image-20140616-125500.jpg
/home/media/usbpendrive 
$basename /home/media/usbpendrive/image-20140616-125500.jpg
image-20140616-125500.jpg

$ARGUMENTsolo está disponible cuando gphotose descarga la imagen, por lo que verificar $ACTIONsería redundante en este caso.

Por supuesto, el archivo deberá tener configurado su bit ejecutable.

Sólo dejé de usar esto cuando descubríEnredarpero no estoy seguro de que esté disponible en Pi.

información relacionada