From: rubikitch Date: 2005-10-26T23:42:56+09:00 Subject: [ruby-list:41385] Re: [ANN] rttool-1.0.0 From: Takahiro Kambe Subject: [ruby-list:41384] Re: [ANN] rttool-1.0.0 Date: Wed, 26 Oct 2005 23:08:56 +0900 るびきちです。 > ところで、rdtoolの元のdot.rd2rcに、rttoolの作成時に生成された > (backup/.rd2rc.new)を単純にappendしてはいけないのでしょうか。 <引用> Emacsに新たなEmacsLispプログラムを導入する場面を考えてください。 load-pathの通ったディレクトリに .el ファイルをコピー・バイトコンパイルします。 最後に .emacs に設定を書く必要があります。 一度導入するだけなら、 .emacs の更新は楽だと思います。 しかし、EmacsLispプログラムをアップグレードする場面を想像してください。 EmacsLispコードが大幅に書き換えられ、設定にも互換性がなくなった場合、 ユーザはいちいち手で .emacs を書き換えなくてはなりません。 非常に面倒な上、エラーに遭遇しやすいですね。 かといって .emacs を何も言わずに勝手に書き換えてしまうのも気がひけます。 RCtoolはこの面倒な作業を肩代りしてくれます。 RCtoolは以下の作業を別個に行います。 * 「定義スクリプト」に書かれた内容に基いて設定ファイルの一部を書き換えたファイルを バックアップディレクトリに作成します。 * 必要があれば、オリジナルと書き換えられたファイルのdiffをとります。 * 最後に、設定ファイルを上書します。 ユーザはどの部分が書き変わったのかがはっきりわかります。 開発者は定義スクリプトを書き換えるだけで、ユーザに適切な設定ファイルを提供できます。 RCtool(紛らわしい…)を使って書き換える場合、 新たに追加されるべき部分(blockと呼ぶ)の有無を確認します。 そして、blockを新しいblockに置換します。 そのため、インストール後の設定も自動化できます。 詳しくは以下のサイトを見てください。 http://www.rubyist.net/~rubikitch/computer/rctool/ > 試しにやってみたら、~/.rd2rcを置き換えた場合と出力が変わってしまったよ > うに見えたのですが、後でもう一度確認します。(何か間違えたかもしれませ > んので。) rttool-rctool -d でdiffが取れます。 > > そのため rd/dot.rd2rc を書き換えただけでは、 .rd2rc が存在するユーザには > > RT filterが使えません。 > rd/dot.rd2rcを置き換えてしまうと、rdtoolとしての動作にも影響しそうです。 そのまま置き換えてしまうと、当然影響します。 そのため、RTtoolの設定を追加するRCtool定義スクリプトを導入したのです。 > > > (1) rd2の動作をrd/dot.rd2rc→.rd2rcの順に読み込むようにしてもらう。 > > * これならば rd/dot.rd2rc を見つけだして書き換えればよし。 > これが良さそうに思えます。 > > 直接rd/dot.rd2rcを書き換えるよりは、さらにオプショナルな設定ファイルが > あれば、それを見るようにできれば、なお良いと思います。ついでに言えば、 > dot.rd2rcのようなファイルのあるべき場所は ${prefix}/etc または > ${prefix}/rd2/etc以下だと思います。具体的には、 > > 1. ${prefix}/etc/rd2/rd2.conf (現在のdot.rd2rc相当) > 2. 存在すれば、${prefix}/etc/rd2/rd2.conf.local > 3. さらに存在すれば、~/.rd2rc > > といったあたりでしょうか。 僕も1案がベストだと思っています。 rd2.conf.localにappendがいいかな。 > > (2) rttool-rctoolコマンド(.rd2rcを更新するスクリプト)もインストールして、 > > 初めてRTtoolを使うときに各自実行してもらう。 > これは何か無駄な気がします。 rootがRTtoolをアップグレードしたとき、設定の互換性がなくなってしまったら、 再度実行する必要がありますからね。 でも最悪ユーザが設定ファイルを手で書き換えるよりはましだと思っています。 るびきち☆ http://www.rubyist.net/~rubikitch/