Мне нравится просматривать текущие различия в исходных файлах, как которые я продолжаю работать с командой:
vim <(svn diff -dub)
То, что я действительно хотел бы смочь сделать, должно послать по электронной почте это цветное различный. Я знаю, что энергия может экспортировать HTML с: TOhtml, но как я конвейерно обрабатываю этот вывод в электронное письмо HTML? Идеально. я хотел бы смочь отправить разность HTML с единственной командой сценария оболочки.
Следующий однострочный файл создает HTML-файл с именем email.html
:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
Теперь вы можете использовать код Пекки для отправки электронного письма.
Однако , я верю в использование правильного инструмента для правильной работы - и VIM может быть здесь не подходящим инструментом. Существуют и другие маркеры, и их использование здесь более уместно.
Например, Pygments можно использовать для получения того же результата, гораздо более эффективно и без проблем:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Обратите внимание, что это создает только фактическое тело текста, а не таблица стилей и окружающий шаблон HTML. Это нужно добавить отдельно, но это тоже несложно. Вот полный сценарий bash для создания допустимого минимального файла HTML:
echo '<!DOCTYPE html><html><head><title>No title</title><style>' > email.html
pygmentize -S default -f html >> email.html
echo '</style></head><body>' >> email.html
diff -u report.log .report.log | pygmentize -l diff -f html >> email.html
echo '</body></html>' >> email.html
РЕДАКТИРОВАТЬ В случае, если код Пекки не работает - как по мне - потому что у вас нет необходимых версий mail
] и mutt
, то вы можете использовать sendmail
следующим образом для отправки электронного письма в формате HTML:
( echo 'To: email-address@example.com'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html ) | sendmail -t
Важно оставить пустую строку между заголовком и телом письма. Также обратите внимание, что, конечно, нет необходимости создавать временный файл email.html
. Просто вставьте остальные команды в нужное место выше и удалите перенаправления в файл.
Я не Linux Guru, но похоже, что это должно удовлетворить ваши потребности, чтобы передать ваш вывод в:
Отправить HTML-файл по электронной почте из командной строки. (использует почту
)
Здесь также есть однострочный пример mutt
здесь :
mutt -e "my_hdr Content-Type: text/html"
-s "my subject" you@xxxxxxxxxxx < message.html
будет сгенерировано электронное письмо в чистом HTML без альтернативы в чистом виде - для этого вам нужно будет создать почту, состоящую из нескольких частей ... Но, возможно, она подойдет для того, что вам нужно.