Скрипты хуков gphoto2 - руководство?

Скрипты хуков gphoto2 - руководство?

Я разместил это на raspberrypi.stackexchange, но меня перенаправили сюда. Я новичок в Linux / Unix и пытаюсь запустить скрипт tether / display с gphoto2.

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

Предполагается, что это загрузит изображение на мой USB-накопитель, а затем выполнит поиск новых команд в скрипте hookscript.

Следующим этапом будет использование qivили аналогичного просмотрщика изображений для поиска последнего снимка в папке, а затем его отображения на весь экран. Я бы хотел, чтобы кто-нибудь объяснил простыми словами, как сделать этот скрипт-хук.

решение1

Gphoto передает $ACTIONи $ARGUMENTскрипту-хуку, который вы можете использовать.

В качестве примера:-

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

Файл откроется в формате shotwell, но его легко изменить на предпочитаемый вами просмотрщик.

Второе ifутверждение гарантирует, что shotwell используется только в том случае, если загруженный файл — JPG, поскольку иногда я настраивал камеру на создание raw (CR2 на Canon), который не открывался в shotwell. Полагаю, его можно расширить, чтобы открывать их с помощью другого просмотрщика.

Изображение будет сохранено как аргумент, предоставленный в --filename- в вашем случае /home/media/usbpendrive/image-20140616-125500.jpg. Это будет значение, сохраненное $ARGUMENTи переданное в ваш скрипт-хук.

Вы можете использовать dirnameи basenameдля разделения этого пути и имени файла на соответствующие части, а затем повторно использовать их для создания нового пути и имени файла для изображения.

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

$ARGUMENTдоступен только при gphotoзагрузке изображения, поэтому проверка $ACTIONв этом случае будет излишней.

Конечно, файлу необходимо будет установить исполняемый бит.

Я перестал пользоваться этим только тогда, когда обнаружил,Запутыватьно я не уверен, что это доступно на Pi.

Связанный контент