summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-05-05 03:53:38 +0000
committerfukachan <fukachan>2001-05-05 03:53:38 +0000
commita2d13385bced6ec0db5514380e1dbe51696c7f77 (patch)
tree79279683b4d3ac3ce8942aa63fc830004362d0bb /fml/doc/ja/tutorial
parent149320fad450d354f755201015ae3826ee5d0fe6 (diff)
downloadfml8-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.sgml3
-rw-r--r--fml/doc/ja/tutorial/include/chapters.ent5
-rw-r--r--fml/doc/ja/tutorial/internals/config.cf.sgml145
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>