# watch for any created, moved, or deleted image files
inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1 \
| grep -i -E '\.(jpe?g|png)$' --line-buffered \
| while read operation path; do
webp_path="$(sed 's/\.[^.]*$/.webp/' <<< "$path")";
if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then # если файл перемещен или удален
if [ -f "$webp_path" ]; then
$(rm -f "$webp_path");
fi;
elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then # если создается новый файл
if [ $(grep -i '\.png$' <<< "$path") ]; then
$(cwebp -quiet -lossless "$path" -o "$webp_path");
else
$(cwebp -quiet -q 90 "$path" -o "$webp_path");
fi;
fi;
done;
Все хорошо работает, но есть одна проблема. Иногда бывает что при загрузки пользователем изображения копия .webp создается битой. Я предполагаю что конвертация происходит до того как изображение полностью загружено, возможно это не так.
Мой вопрос, в чем может быть проблема, и для тестирования, как заставить inotify-tools выполнять с небольшой задержкой, это бы исключило мою теорию. Всем заранее спасибо за помощь.
[quote=Vascom]Добавь задержку перед конвертацией просто.
Спасибо за ответ. Я не очень силен в этом, у Вас нет возможности показать на примере как это сделать? Буду очень признателен.[/quote]
Таким образом: -exec bash -c sleep 5 ' ?