うー、だめだ、なかなかテンポが戻らない。
えーと、とりあえず CVS アカウントをもらわないとコミットできないな。 GPG の操作は初めてだからどうもよくわからん。
まずは中田さんがパッチを書いてくれた [ruby-talk:101077] から見よう。 ディレクトリをそのまま (a/* を b/* に) コピーしたいのか。 cp -r a b で b/a ができるのは cp(1) に合わせた仕様なのでしょーがない。
ああそうか、中田さんのパッチはこれを a/* → b/* にするパッチなのか……。 これは仕様が変わっちゃうからちょっと無理だなあ。
それより glob を使ってるほうがエラーになってるのが気になる。 これはいったいどういう状況で起きてるんだ。
うーむ、手元だと何も起きない。困ったな。 何なんだろう。シンボリックリンクかなあ。
うわあ、シンボリックリンクがコピーされてないよ! というか dereference されてるよ! これはまずいな。新たなバグと認定。 とりあえずテストだけ書いておこう。
そんでエラーは何なんだろうなあ。 ……あ、そうか、やっぱりシンボリックリンクか。 存在しないファイルを指すシンボリックリンクがあるとエラーになるんだ。 それじゃあさっきのバグを直せば自動的に直るってことだな。
(18:27)
でも dereference できないとそれはそれで不便かなあ。 うーん…… cp(1) にもそういうオプションはないのか。じゃあいいや。
シンボリックリンク以外はどうだろう。 GNU の cp -R だとデバイスファイルとか FIFO はファイル自体をコピーするんだよな。 デバイスファイルの中身をコピーしたいってことはそうそうなさそうだし、 cp_r を cp -R 相当にしたほうが安全か。 よし、そうしよう。
(18:49)
あれえ、mknod ってないんだっけ?
ありゃ、mkfifo もない?
そうか、それで実装してなかったのか。 あ、[ruby-talk:91735] で中田さんがすでにパッチを出している。さすがだ。
うむむ、どうしようかな。 とりあえず外形だけ用意しておいて、 スキップするか……いや例外のほうがマシだ。
(20:11)
想像以上に大きい変更になった。 きっと根源的にコピーという操作がややこしすぎるのだ。
なんで FileUtils.install に preserve なんてオプションがあるんだよ。 インストールするときにパーミッションを保持してどうする。 そのくせ owner と group がないというのがまた謎だ。 追加しておこう。
よし次。[ruby-talk:106434] は……NTFS かよ。やだなあ。 だいたいなんだ、なんで rm とマウントが関係あるんだ。 わけわかんねええよ。
(01:24)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
installのpreserveが保持するのはタイムスタンプでは。
あ、そうでした。
しかし、それはそれで非統一な感じ……(まあいいか)