ファイルの改行コードを変換する方法

元ネタ:1行で指定ディレクトリ配下のファイルの改行コードを変換する方法 - Togetter
がんばってみたが AntBuilder に及ばなかった。

// 個人的な設定なので注意
new File('.').eachFileRecurse(groovy.io.FileType.FILES) { it.write(it.text.normalize(), 'UTF-8') }
new File('.').traverse { if (it.file) it.write(it.text.normalize(), 'UTF-8') }
// new AntBuilder().fixcrlf(srcDir:'.', eol:'lf', includes:'**/*.*') ファイル指定がなくてもサブフォルダまで対象になる
// new AntBuilder().fixcrlf(srcDir:'.', eol:'lf') Java 環境のデフォルトの文字コードだった
new AntBuilder().fixcrlf(srcDir:'.', eol:'lf', encoding:'utf-8')

File からオリジナルの文字コードを取得する方法が分からなかった。
AntBuilder は勉強になった。Task も覚えておこう。

追記

やっぱり覚えるのはやめて検索するようにしよう。
Apache Ant™ User Manual

2011-05-19 追記

早速 groovy -e で使ってみたところ返ってこなかった。
どうやらコマンドプロンプトでは 「*」 を使えない場合があるらしい。

groovy -e "println '*'"

http://jira.codehaus.org/browse/GROOVY-3043


bat ファイルの問題のようなので java コマンドで起動してみる。
参考:java -jarで起動できるGroovy - uehaj's blog


今度は java -cp %GROOVY_HOME%/lib/*.jar が 「.」 を含む jar 名に対応していないのでエラーになる。
全ての jar を指定すればいいのだが、当初の問題は解決したし groovy.bat が修正される可能性もあるのでここまで。

2011-05-23 追記

永井雅人のブログ: Poison for Groovy
http://jira.codehaus.org/browse/GROOVY-4805
修正パッチが UP されていて 「*」 表示できた。
Nagai Masato さんに感謝。

2011-05-31 追記

文字コードを指定しなければいけなかった