Разработчики из компании Google представили новый открытый проект Ashier, в рамках которого подготовлена утилита для автоматизации выполнения интерактивных операций в терминале в соответствии с заданным шаблоном действий. Например, ashier может использоваться для автоматического ввода команд и ответа на запросы консольного приложения. Выполняемые ashier задачи сходны с утилитой expect, а отличия в основном состоят в существенном упрощении настройки правил, создание которых доступно обычным пользователям, и предоставление возможности формирования шаблонов в читаемом и наглядном виде.
Ashier позволяет задать алгоритм действий с использованием простого языка написания шаблонов, основанного на задании регулярных выражений. Поддерживаются в том числе и такие расширенные опции, как парсинг вложенных многострочных данных и возможность интеграции с другими языками программирования для определения логики реагирования на событие. Код утилиты доступен под лицензией Apache.
Для примера, можно привести ashier-скрипт для выделения результатов выполнения операции ping (какие именно значения взять в скрипте указывается при помощи наглядных отступов и многоточий):
> 64 bytes from slashdot.org (216.34.181.45): icmp_req=3 ttl=230 time=94.4 ms ? .. ? ............................ ? . req ? ... ttl ? .... time ! controller "REPLY $req $ttl $time"