diff(git diff)を綺麗に印刷したい
git diffとかの結果をコンソールで見ると、
こんな感じに色分けされて綺麗に見える。
しかし、テキストにしても綺麗に読めない。
というわけで、印刷できるようにスクリプトを作ってみました。
#!/usr/bin/env ruby require 'cgi' $KCODE="u" data="" f=open(ARGV[0],"r") data=f.read f.close data.gsub!(/^\+(.*)$/){"<font color='green'>+#{CGI::escapeHTML($1)}</font>"} data.gsub!(/^-(.*)$/){"<font color='red'>-#{CGI::escapeHTML($1)}</font>"} data.gsub!(/\r\n|\n|\r/,"<br />\n") html=<<-HTML <html> <head><title>diff2html</title></head> <body> #{data} </body> </html> HTML puts html
をdiff2html.rbという名前で保存しておきます。
git diff > hoge.txt ruby diff2html.rb hoge.txt > hoge.html
って感じで変換し、ブラウザで見ると、
これだと綺麗に印刷できる。
すぐにできそうだったら作ったけど、
すでにどっかにありそうな気はする。