gphoto2-Hook-Skripte – eine Anleitung?

gphoto2-Hook-Skripte – eine Anleitung?

Ich habe dies auf raspberrypi.stackexchange gepostet, wurde aber hierher weitergeleitet. Ich bin neu bei Linux / Unix und versuche, ein Tether- / Display-Skript zum Laufen zu bringen gphoto2.

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

Dieser soll das Image auf meinen USB-Stick herunterladen und anschließend im Hookscript nach neuen Befehlen suchen.

Der nächste Schritt wäre, mit qiveinem ähnlichen Bildbetrachter nach der letzten Aufnahme im Ordner zu suchen und sie dann im Vollbildmodus anzuzeigen. Ich hätte gern, dass mir jemand in einfachen Worten erklärt, wie man dieses Hook-Skript erstellt.

Antwort1

Gphoto übergibt es $ACTIONauch $ARGUMENTan das Hook-Skript, welches Sie verwenden können.

Als Beispiel:-

#!/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

Dadurch wird die Datei im geöffnet shotwell. Sie können das aber ganz einfach zu Ihrem bevorzugten Viewer ändern.

Die zweite ifAnweisung stellt sicher, dass Shotwell nur verwendet wird, wenn die heruntergeladene Datei ein JPG ist, da ich die Kamera manchmal so eingestellt hatte, dass sie RAW-Dateien (CR2 auf einer Canon) erstellte, die sich nicht in Shotwell öffnen ließen. Ich nehme an, es könnte erweitert werden, um diese mit einem anderen Viewer zu öffnen.

Das Bild wird als das angegebene Argument gespeichert --filename– in Ihrem Fall /home/media/usbpendrive/image-20140616-125500.jpg. Dies ist der Wert, der in $ARGUMENTIhrem Hook-Skript gespeichert und an dieses übergeben wird.

Sie können dirnameund verwenden basename, um diesen Pfad und Dateinamen in die entsprechenden Teile aufzuteilen und diese dann erneut zu verwenden, um einen neuen Pfad und Dateinamen für das Bild zu erstellen.

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

$ARGUMENTgphotoist nur beim Herunterladen des Bildes verfügbar , eine Überprüfung $ACTIONwäre in diesem Fall also überflüssig.

Natürlich muss das Ausführbare-Bit der Datei gesetzt sein.

Ich habe erst damit aufgehört, als ich herausfandVerwickelnaber ich bin nicht sicher, ob das auf dem Pi verfügbar ist.

verwandte Informationen