Программа для наблюдения за директорией и автоматической обработки появившихся в ней "jpg" и "png"-файлов, работающая при помощи программы мониторинга "inotify".
Если в watch-директорию "попадает" файл с расширением ".jpg" или ".png", то программа ,по необходимости, конвертирует файл в ".png" и сокращает размер картинки, иначе этот файл удаляется. В дальнейшем переработанный файл попадает в указанную output-директорию.
- Картинки для сайтов не должны загружаться слишком долго, потому что это вредит производительности сайта. Для этого полученный контент и "сжимается" в свои принятые размеры.
- Конвертирование и сжатие каждого файла - монотонная работа, поэтому и была придумана подобная автоматизация.
Можно использовать все (или почти все) типичные способы, как:
- touch
- cp
- mv
- ssh
Внимание: не перемещайте файлы из out-директории в in-директорию напрямую. Вполне вероятно, что работа программы будет некорректна.
- Скачайте/склонируйте репозиторий на локальную машину.
- Установите "inotify-tools", если он у вас ещё не установлен. На Debian/Ubuntu это делается следующим образом:
sudo apt-get install inotify-tools- Установим ещё две важных утилиты: "pngquant" для сжатия и "mogrify" для конвертирования. "Mogrify" - это лишь часть пакета "imagemagick".
Debian/Ubuntu:
sudo apt-get install pngquant
sudo apt-get install imagemagick- Сконфигурируем и скомпилируем все данные. Для этого достаточно запустить следующие команды в директории проекта:
./configure
make- Чтобы запустить программу достаточно выполнить следующее:
./<project_path>/dpw <watch_dir> <output_dir>Внимание: не передавайте в аргументы те директории, в названиях которых существуют пробельные символы.
Если вы хотите успешно завершить программу, то сделайте так, чтобы в "watch"-директории появился файл ".end_inotify_properly".
Внимание: если вы передаёте несколько файлов ( например, по ssh ), то убедитесь, чтобы этот stop-файл был передан последним.
Да, эта информация будет содержаться в файле "logs", который находится в корне проекта.