Це команда inotify-hookablep, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
inotify-hookable - блокування інтерфейсу командного рядка для inotify
СИНТАКСИС
Перегляньте каталог, повідомте нам, коли щось зміниться в ньому:
inotify-hookable --watch-directories /tmp/watch-this
Перегляньте дерево git, деякі конфігурації та сховище статичних активів, перезапустіть веб-сервер
або стисніть ці активи, якщо щось зміниться:
inotify-hookable \
--watch-directories /etc/uwsgi \
--watch-directories /git_tree/central \
--watch-directories /etc/app-config \
--watch-directories /git_tree/static_assets \
--on-modify-path-command "^(/etc/uwsgi|/git_tree/central|/etc/app-config)=sudo /etc/init.d/uwsgi restart" \
--on-modify-path-command "^/git_tree/static_assets=(cd /git_tree/static_assets && compress_static_assets)"
Або перегляньте конкретні файли:
inotify-hookable \
--watch-files /var/www/cgi-bin/mod_perl_handler \
--on-modify-command "apachectl restart"
ОПИС
Ця проста програма командного рядка є моєю заміною функціональності, яку пропонує
Plack's Filesys::Notify::Simple. Я виявив, що на дуже великих деревах git Plack витрачає
Надмірна кількість перегляду файлової системи на предмет змін.
Ця програма використовує Linux::Inotify2, тому ядро повідомить про це негайно коли щось
змін (насправді це настільки швидко, що ми повинні обійти, як швидко він надсилає нам події).
Результатом є те, що ви можете запустити це, наприклад, під час екранного сеансу, і запропонувати йому стежити за вашим
середовище розробки, і ваш веб-сервер почне перезавантажуватися раніше, ніж ваш палець
залишає економити кнопки.
Тимчасові файли vim і emacs ігноруються за замовчуванням (див. "--ignore-paths".), тому ви можете
редагувати файли без перезавантаження сервера без потреби.
Наразі інтерфейс командного рядка для цього є єдиним, який дійсно має сенс,
цей модуль повністю блокується (хоча він, ймовірно, може працювати в іншому процесі через
POE чи щось таке). Патчі вітаються.
ВАРІАНТИ
Зауважте, що логічні параметри можна заперечувати за допомогою «--no-OPTION», наприклад «--no-r» або
«--no-recursive», щоб вимкнути параметр «--recursive», який увімкнено за замовчуванням.
"-w" or "--watch-directory"
Вкажіть це, щоб переглянути каталог, ви можете вказати його скільки завгодно разів
багато каталогів.
"-f" or "--watch-files"
Перегляньте файл, вкажіть кілька разів для кількох файлів. Ви можете переглядати файли і
каталогів у тій самій команді.
"-r" or "--рекурсивний"
Якщо ви вкажете це, будь-який каталог, який ви надасте, буде рекурсивно переглянуто. Це на
за замовчуванням.
"-c" or "--on-modify-command"
Команда, яка буде запущена, коли щось буде змінено.
"-C" or "--on-modify-path-command"
Пара ключ-значення, де ключ є регулярним виразом, який буде зіставлятися зі зміненим шляхом, і
значення – це команда, яка буде запущена. Для прикладу див. "КОНТАКТ".
Корисно, наприклад, для перезапуску веб-сервера, якщо ви змінюєте каталог A але стиснення деяких
статичні активи, якщо ви змінюєте каталог B.
"-t" or "--buffer-time"
Linux надішле вам сповіщення про події насправді швидко, настільки швидко, що якщо ви запускаєте щось на кшталт:
торкніться панелі Foo
Ви можете отримати подію для Foo в одній партії з подальшою подією для бар в подальшому.
Щоб впоратися з цим, ми входимо в цикл, коли починаємо отримувати події і спимо для значення за замовчуванням
100 мікросекунд, поки ми продовжуємо отримувати події, ми продовжуємо спати 100 мікросекунд,
але як тільки ми не отримуємо нічого нового, ми запускаємо наші обробники подій.
"-я" or "--ігнорувати-шляхи"
Регулярні вирази для файлів/каталогів для ігнорування подій. За замовчуванням для цього встановлено регулярні вирази
тимчасові файли vim і emacs, "qr{\..*sw.\z}" і "qr{\.\#[^/]+\z}" відповідно.
Регулярні вирази збігаються після будь-якого «/» у шляху або на початку рядка.
"-d" or "--відлагоджувати"
Викиньте докладний налагодження під час роботи.
СПОСОБИ
Цей модуль спочатку був розроблений на Booking.com і для нього. З погодженням від
Booking.com цей модуль був узагальнений і поставлений на CPAN, для чого хотіли б автори
висловити свою вдячність.
Використовуйте inotify-hookablep онлайн за допомогою служб onworks.net