Article delegate-notes/7 of [1-8] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A3@delegate-notes.ML_>]
Newsgroups: mail-lists.delegate-notes

[DeleGate-Notes] DeleGateのコマンド引数と設定ファイル (+=URL)
10 Dec 2009 11:01:27 GMT ysato@delegate.org (Yutaka Sato)
The DeleGate Project


DeleGateのコマンド引数と設定ファイル
DGbeecon-09-12-10-sato

 DeleGateの全ての設定は、設定ファイル無しで、つまりコマンドラインの引数
だけで、行なう事ができます。
というより、実際には利用者の方はご存知のように、DeleGateの「設定ファイル」
は単に、コマンドライン引数を、一行に一つずつ、列挙しただけのものなのです。
つまり、コマンドライン引数と、構成ファイルの構文が同一なのです。
他の同様なソフトでは、構成ファイル・設定ファイルは、コマンド引数で書く
のには向かない構文で記述されるのが一般的だと思います。

DeleGateのこのような形式による記述のし方のメリットは、
・コマンドラインだけで必要な設定ができることが便利なことがある
・利用者がそれぞれに、好みのスクリプト言語で、DeleGateの構成を記述できる
・環境依存性の高い「設定ファイルを何処に置くか」について悩まずに済む
などの点です。
DeleGateをどのように設定するかを、環境や状況によって自動的に判定して
決定したい事はよくあり、そのような判定とそれに基づいたDeleGateの引数の
選択・生成を、利用者の好みのスクリプト言語で行なえる事はメリットと言える
と思います。開発者自身は旧態依然というか、/bin/sh を使っています...(^^)

デメリットとしては、
・「構成記述ファイル」を前提とした視覚的に読み書きし易い記述方法で無い
・アドホックにコマンドラインで入力するには表記が簡明とは言えず中途半端
などがあげられます。

実際のところ開発者は、DeleGateの開発の当初に導入したこのような形式での
設定方法を、その後長く用いることになるとは思っていませんでした。
もっと高水準な構成ファイルの構文を導入するとか、他の同様な機能のソフト
の形式に従うとか、21世紀にはGUIでチキチキ設定するだけで済むようになる
とか、予想していたのですが... (^^;


さて、具体的なことを少し書きましょう。
DeleGateの引数は大きくわけて、-fv のように "-" で始まるスイッチ的なものと、
SERVER=http のように名前と値の対で設定情報を定義するもの、そして +=URL と
いう「指定されたURLからのinclude」を指示するものがあります。
この +=URL が、一般で言う設定ファイルの指定にあたります。これは複数を
指定でき、また設定ファイルの中からさらに他をincludeすることもできます。

+=URL で設定ファイルのありかを示す URLとしては、HTTP などのフルURL
http://server/path形式)か、ローカルファイルの相対もしくは絶対パスが指定
できます。+=/path のように "/" で始まる絶対パス名は、ローカルファイル
システムのルートからのパスを表し、そうでない相対パス名は、いくつかの候補
ディレクトリ(DGPATHで定義される)から探索されます。
(<URL:http://www.delegate.org/delegate/Manual.htm#DGPATH>)

デフォルトのDGPATHの探索順は、
 - 設定ファイル中からのincludeである場合、設定ファイルのあるディレクトリ
 - DeleGate実行時のカレントディレクトリ
 - $HOME/delegate
 - DeleGateの実行ファイルのあるディレクトリ
 - ETCDIR (デフォルトはDGROOT/etc)
です。
Windowsで、ローカルファイルのドライブ名からの絶対パスを指定したい場合には、
+="file:C:/path" のように指定します。Windowsではディレクトリの区切りに
"\" を使用するのが普通ですが、DeleGate中では問題を起こすことがありますので
代わりに(Unixと同じように) "/" を使って下さい。

                   9 9  
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V