Di seguito uno-liner produce un file HTML denominato email.html
:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
È ora possibile utilizzare il codice di Pekka per inviare l'e-mail.
Tuttavia,, credo nell'utilizzo dello strumento giusto per il lavoro giusto - e VIM potrebbe non essere lo strumento giusto qui. Esistono altri evidenziatori e il loro uso è più appropriato qui.
Per esempio, Pygments può essere sfruttata per produrre lo stesso risultato, molto più efficiente e senza problemi:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Si noti che questo produce solo corpo del testo vero e proprio, non il foglio di stile, né lo scaffold HTML circostante. Questo deve essere aggiunto separatamente, ma non è nemmeno difficile. Ecco uno script completo bash per produrre un file HTML minimo valido:
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
EDIT Nel caso in cui il codice di Pekka non ha funzionato - per quanto mi riguarda - perché non avete le versioni richieste di mail
e mutt
installato quindi è possibile utilizzare sendmail
come segue per inviare l'e-mail HTML:
(echo 'To: [email protected]'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html) | sendmail -t
e 'importante lasciare una riga vuota tra l'intestazione e il corpo del messaggio. Inoltre, si noti che non è ovviamente necessario creare il file temporaneo email.html
. Basta incollare il resto dei comandi nel posto giusto sopra e cancellare i reindirizzamenti sul file.
fonte
2010-04-01 14:31:17
hai una definizione interessante di "più efficiente e senza problemi". +1 per come ottenere vim da scrivere e uscire dalla riga di comando. – rampion
è possibile modificare "+ w email.html" in '+%! Mutt' o qualsiasi altra cosa per invocare direttamente il comando mail – rampion
@rampion: L'avvio di Vim in questo modo è in realtà abbastanza inefficiente. I picchi facilmente lo superano.Semplicemente, voglio dire che il flusso di lavoro di Pygments è concettualmente più semplice ("sintassi-evidenzia una diff", invece di "aprire una diff in un editor, eseguire un comando, chiudere l'editor") anche se è più testo Scrivi. Entrambi i metodi hanno i loro meriti, penso. –