From: Minero Aoki Date: 2003-02-10T15:52:07+09:00 Subject: [ruby-list:37082] Re: setup.rb: Patch to ignore CVS,*~,... ----Next_Part(Mon_Feb_10_15:58:15_2003_809)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit あおきです。 In mail "[ruby-list:37081] setup.rb: Patch to ignore CVS,*~,..." "Shirai,Kaoru" wrote: >  白井です。 > >   [ruby-list:30270] setup.rb のスレッドでも議論されていた、 > install.rb/setup.rb で .bak .org .rej CVS/ RCS/ といったゴミを弾けないか > という問題についてです。 > >   tarball で配布する際はあらかじめ削除するという手があるのですが、 CVS > ディレクトリを含むソースツリー上で開発している時にも install.rb/setup.rb > を使いたい場面があります。やはりゴミはインストールの対象から除いてくれた > 方がありがたいと思います。 結論から言うと、このパッチはそのままではとりこめません。現在の setup.rb は開発用イメージとインストール用イメージを完全に別物 にするという前提で設計されているからです。 本気で考えれば、無視すべきファイルパターンは固定しないでしょう。 たとえば *.in は入れてほしくないとか、いくらでも変則的な要求は 考えられます。だからちゃんと問題を解決するには、たぶんその逆に インストールすべきファイルを指定するべきす。しかしそれならそも そも現在の setup.rb の「ディレクトリツリー (のみ) で属性を指定 する」という前提が崩れるので、ディレクトリツリー縛りは単なる負 担になってしまいます。それだったら全部作り直したほうが楽です。 もうちょっと言うなら、ruby を使った開発スタイル全体をトータル で考えなおす必要があるのではないでしょうか。そもそもあの面倒な ディレクトリツリーをどうやって開発中に用意しているのかわからな いのですが、どういう状況で開発しているんでしょうか? また、 その方法は普遍的に通用するんでしょうか。 >  ところで、 src/*.rb から install.rb/setup.rb を作る方法が見付からなか > ったのですが、どうすれば良いのでしょうか? とりあえず、 添付の asm.rb を使ってください。 こんな感じです。 for i in install.rb setup.rb do ruby asm.rb in.$i > $i done 次のリリースからは付けようと思ってたところでした。 ------------------------------------------------------------------- 青木峰郎 ----Next_Part(Mon_Feb_10_15:58:15_2003_809)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="asm.rb" puts '#' puts '# This file is automatically generated. DO NOT MODIFY!' ARGF.each do |line| if req = line.slice(/\Arequire 'setup\/(\S+)'/, 1) file = req + '.rb' puts '### begin ' + file print File.read(file) puts '### end ' + file else print line end end ----Next_Part(Mon_Feb_10_15:58:15_2003_809)----