Как захватить вывод цветного терминала (ANSI) и записать его, сохраняя цвета
Мне нужно было захватить цветной вывод длительной программы командной строки, чтобы я мог легко поделиться ею с коллегами. Конкретно я бегу vagrant up
, который генерирует красочный и полезный вывод, и мне нужно сохранить это в удобном формате. Мое лучшее решение до сих пор использует две программы, aha
а также script
, которые доступны в качестве основных пакетов.
aha
принимает escape-последовательности ANSI и преобразует их в разметку HTML. script
обманывает вашу программу, думая, что она выводится на экран, а не на STDOUT, что обычно отключает цвет для многих программ
Я запускаю свою команду в два этапа:
script -q -c "vagrant up" temp.txt
(-q
удаляет статусные сообщения и-c
рассказывает скрипт для запуска команды)cat temp.txt | aha --black > output.htm
(--black
флаг делает фон HTML темным)
Пока я очень счастлив, но, может быть, это можно объединить в одну строку? Какие-нибудь мысли? Или лучше команды, которые я мог бы использовать? Я в курсе питона ansi2html
, но это казалось проще.