diff options
| author | fukachan <fukachan> | 2001-05-05 03:53:38 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-05-05 03:53:38 +0000 |
| commit | a2d13385bced6ec0db5514380e1dbe51696c7f77 (patch) | |
| tree | 79279683b4d3ac3ce8942aa63fc830004362d0bb /fml/doc/ja/tutorial | |
| parent | 149320fad450d354f755201015ae3826ee5d0fe6 (diff) | |
| download | fml8-a2d13385bced6ec0db5514380e1dbe51696c7f77.tar.gz fml8-a2d13385bced6ec0db5514380e1dbe51696c7f77.tar.bz2 fml8-a2d13385bced6ec0db5514380e1dbe51696c7f77.zip | |
make a chapter on config.cf
Diffstat (limited to 'fml/doc/ja/tutorial')
| -rw-r--r-- | fml/doc/ja/tutorial/book.sgml | 3 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/include/chapters.ent | 5 | ||||
| -rw-r--r-- | fml/doc/ja/tutorial/internals/config.cf.sgml | 145 |
3 files changed, 151 insertions, 2 deletions
diff --git a/fml/doc/ja/tutorial/book.sgml b/fml/doc/ja/tutorial/book.sgml index 8c525077..12f2c56d 100644 --- a/fml/doc/ja/tutorial/book.sgml +++ b/fml/doc/ja/tutorial/book.sgml @@ -2,7 +2,7 @@ This is an sgml using DocBook dtd. Use sgmltools version 2.0.x or above to generate various output formats. -$FML: book.sgml,v 1.3 2001/05/01 14:49:18 fukachan Exp $ +$FML: book.sgml,v 1.4 2001/05/01 15:16:24 fukachan Exp $ --> <!doctype book public "-//FML//DTD DocBook V3.1-Based Extension//EN" [ @@ -54,6 +54,7 @@ $FML: book.sgml,v 1.3 2001/05/01 14:49:18 fukachan Exp $ &design; &chapter.bootloader; &chapter.programs; + &chapter.config.cf; &fmlcommands; &delivery; </part> diff --git a/fml/doc/ja/tutorial/include/chapters.ent b/fml/doc/ja/tutorial/include/chapters.ent index 20c72bf2..6af9ec1a 100644 --- a/fml/doc/ja/tutorial/include/chapters.ent +++ b/fml/doc/ja/tutorial/include/chapters.ent @@ -1,5 +1,5 @@ <!-- - $FML: chapters.ent,v 1.2 2001/05/01 15:16:26 fukachan Exp $ + $FML: chapters.ent,v 1.3 2001/05/01 15:38:05 fukachan Exp $ --> <!entity versin "1.1"> @@ -7,6 +7,8 @@ <!-- ポインタ --> <!entity fmlbible "『fml バイブル』(オライリージャパン刊)"> <!entity www.fml.org "http://www.fml.org/fml/"> +<!entity fml4 "fml 4.0"> +<!entity fml5 "fml 5.0"> <!-- 画像 --> @@ -36,6 +38,7 @@ <!entity sect.main.cf SYSTEM "internals/main.cf.sgml"> <!entity chapter.programingstyle SYSTEM "internals/style.sgml"> <!entity design SYSTEM "internals/design.sgml"> +<!entity chapter.config.cf SYSTEM "internals/config.cf.sgml"> <!-- 配送 --> diff --git a/fml/doc/ja/tutorial/internals/config.cf.sgml b/fml/doc/ja/tutorial/internals/config.cf.sgml new file mode 100644 index 00000000..ca16a24e --- /dev/null +++ b/fml/doc/ja/tutorial/internals/config.cf.sgml @@ -0,0 +1,145 @@ +<!-- + $FML: main.cf.sgml,v 1.1.1.1 2001/05/01 14:52:05 fukachan Exp $ +--> + +<chapter> + <title> 設定ファイル config.cf </title> + + +<!-- ======================================= --> +<sect1 id="config.cf"> + <title> MLごとの設定ファイル config.cf </title> + +<para> +各MLごとにさまざまなカスタマイズをすることができます。 +そのために &fml4; では +各MLのホームディレクトリ $DIR に config.ph というファイルがあります。 +これは .ph という名前でわかる通り perl script です。 +</para> + +<para> +perl script にはいくつか問題があります。 +perl script なので、perl が許す限りの自由な書き方ができます。 +これが config.ph の最大の問題です。 +makefml や CGI をはじめとする設定インターフェイスを書きにくいのです。 +</para> + +<para> +そこで &fml4; では、 +cf というファイルと config.ph という +2 つのフォーマットの異なるファイルが使われています。 +</para> + +<para> +しかし、これはこれで2つにわかれていることから保守しにくいものです。 +よって &fml5; では、設定インターフェイスにやさしい +新フォーマットを提唱します。 +それが config.cf です。 +これは本質的に postfix 風のフォーマットといってよいでしょう。 +</para> + +</sect1> + + +<!-- ======================================= --> +<sect1 id="config.cf.format"> + <title> config.cf のフォーマット </title> + +<para> +config.cf のフォーマットは + <link linkend="main.cf"> + /etc/fml/main.cf + </link> +と同様です。 +<screen> +変数名 = 値 + +変数名 = 値1 値2 値3 + +変数名 = 値1 + 値2 + 値3 +</screen> +のようにスペースないしは改行で区切って複数の値を書くことができます。 +</para> + +<para> +変数定義内での $ による変数の展開も可能です。 +例えば +<screen> +a = 値1 +b = $a/値2 +</screen> +は最終的に +<screen> +a = 値1 +b = 値1/値2 +</screen> +と解釈されます。 +</para> + + +<para> +展開は、すべての変数定義を読み込んだ後に行なわれます。 +そのため、以下のような定義をすると +<screen> +a = 値1 +b = $a/値2/$c +c = 値3 +a = 値4 +</screen> +次のように +<screen> +b = 値4/値2/値3 +</screen> +と解釈されます。 +</para> + +</sect1> + + +<!-- ======================================= --> +<sect1 id="config.cf.overload"> + <title> config.cf の多重読み込み(変数定義の上書き) </title> + +<para> +複数の config.cf を読み込み、定義の上書きを行なうことができます。 +</para> + +<para> +これを利用して +『デフォルトの定義』、 +『サイト固有の定義』、 +『ドメイン固有の定義』 +などを別のファイルに分離することができます。 +fml は起動時にそれらのファイルを順番に読みこみ、 +最後にML固有の config.cf を読み込みます。 +そして、その後に変数の展開処理を行ないます。 +</para> + +</sect1> + +<!-- ======================================= --> +<sect1> + <title> 展開後に変数を代入すると? </title> + +<para> +$ をふくむ変数の値の代入が行なわれると、 +次回値を取り出すメソッドが呼ばれた際に、再展開が行なわれます。 +</para> + +<para> +例えば +<screen> +$config->{ key } = '$ml_home_dir/value'; +</screen> +という代入処理が行なわれると、次に +<screen> +$config->{ another_key } +</screen> +(キーはなんでもよい)メソッドが呼ばれた際に再評価されることになります。 +</para> + +</sect1> + +</chapter> |
