9 設定ファイルの編集について


各MLのHOMEディレクトリには cf と config.ph という2つのファイルがあ
ります。config.ph がそのMLの動作を制御するもっとも大事なファイルです。 
cf というファイルは主にメニュープログラムが処理しやすくするために存在
します。

一般に初心者はメニューで設定を行い cf や config.ph を直接いじらない。
慣れてきたら config.ph を直接EDITする人が多いようです。config.ph を直
接EDITするようになったら cf ファイルは消しても構いません。

9.1 設定ファイル(cf と config.ph)についての注意


fml.pl がメーリングリスト本体です。このプログラムにメールを入れるとメー
リングリストとして作動します。fml のほとんど全てのプログラムの動作は 
config.ph という設定ファイルの内容で挙動が変わります。

makefml config (=> Chapter 7.0)は cf というファイルを
編集するメニュー形式のインターフェイスです。makefml はこの cf というファ
イルから config.ph を毎回作っています。例: elena MLの場合


	/var/spool/ml/elena/cf -> /var/spool/ml/elena/config.ph

メニューの画面で設定できない(より進んだ/凝った)設定をする場合
大きくわけて二通りの運用方針があります。

	1. 常に cf ファイルを編集し、その cf から config.ph を作る。
	   MLのHOMEで make config.ph というコマンドをうつと
	   cf -> config.ph はつくられます。
	   makefml config も使用できます。		

	2. 今後は cf も makefml も使わず config.ph を手で編集する。

cf ファイルは config.ph のマスターですが config.ph を直接編集し構いま
せん。むしろ望ましいです。しかし config.ph を手でいじって、そのあと 
makefml config を使うとせっかくの設定が上書きされて消されてしまいます。
この場合 makefml は警告を出して一回止まりこのまま進んでいいかどうか尋
ねてきます。

9.2 cf ファイルと config.ph のフォーマット

詳細は doc/op.jp というファイルのパートIIIなどを見て下さい。

○ config.ph 
書き方は perl の構文そのものです。

○ cf ファイル
『変数名 値』をスペースかタブで区切って書く UNIX 伝統のスタイルです。 
行の # 以降はコメントです。cf で定義されていないものはデフォールト値が
使われます。つまり cf にはデフォールトと異なる差分だけを保守するのに便
利です。

#/usr/local/fml/cf/MANIFEST に変数の一覧とデフォールト値があります。

cf の『変数名 変数の値』行は config.ph の『$変数名 = "変数の値";』行に
変換されます。つまり『変数名は perl の変数名から $ をとったもの』です。

例: cf で	

	MAIL_LIST                	elena@$DOMAINNAME
	PERMIT_POST_FROM         	members_only
	REJECT_POST_HANDLER      	reject

は config.ph の

	$MAIL_LIST                     = "elena\@$DOMAINNAME";
	$PERMIT_POST_FROM              = "members_only";
	$REJECT_POST_HANDLER           = "reject";

に変換されます。cf に現れない変数は config.ph にデフォールト値を持って
生成されます。config.phに設定される変数一覧は cf/MANIFEST にあります。
デフォールト及び変数一覧はこのcf/MANIFEST(例:
/usr/local/fml/cf/MANIFEST) というファイルを読んで下さい。

cf ファイルではLOCAL_CONFIG というキーワードから後は生の perl 構文が書
けます。ローカルハックはこの部分に記述しておくと便利。この部分は cf ->
config.ph を再生成した時に config.ph の最後につけ足されます。

9.3 makefml config-template; configの大元のファイルをメニューで編集

newml 時に $DIR/cf は $EXEC_DIR/etc/makefml/cf というファイルから生成
されています。同じような設定のMLを複数作るのであればあらかじめ
$EXEC_DIR/etc/makefml/cf というファイルを編集しておいた方が後々楽がで
きます。もちろん手動で設定変更しても構いません(ロックも不必要)。

	makefml config-template 

は特定のMLではなくこのファイル($EXEC_DIR/etc/makefml/cf) に対して
"makefml config" 同様のメニュー編集機能を提供します。_ML_ などのテンプ
レートで使われている生の記号が出てきますが、その辺は触らないようにして
下さい。例えば自動登録をデフォールトにしてしまうなどに用いることができ
ます。

9.4 template (生成されるファイルの元) の直接編集

テンプレートを直接編集する場合です。cf だけでなく help ファイルなどの
テンプレートの編集にも使えます。

cf はメニューでのテンプレート変更ができますが、もっと複雑な変更がした
い場合は直接編集する必要があります。テンプレートにあらかじめ必要な設定
を仕込んでおけばML作成時に必要な作業を減らすことができます。このファ
イルを直接いじってもよいし、

	makefml edit-template cf

で cf の template をいじってもよいです。あまり違いはありませんが 
makefml 経由だとファイルがどこにあるか?を探す手間がないだけです。
makefml はエディタを起動し cf ファイルの template をいじれるようにしま
す。この時環境変数 EDITOR の Editor が使用されます。同様に

	makefml edit-template help.jp (Japanese help file template)
	makefml edit-template help.en (English help file template)

とすると作成される help ファイル(日本語)の template を edit することが
できます。



[PREVIOUS CHAPTER] [NEXT CHAPTER]
Copyright (C) 1993-1999 Ken'ichi Fukamachi
All rights of this page is reserved.

# This Document(html format) is automatically geneareted by fwix.pl. 
# fwix (Formatter of WIX Language) is fml document formatter system
# designed to generate plaintext, html, texinfo and nroff from one file.
#
# Copyright (C) 1993-1999 Ken'ichi Fukamachi
#          All rights reserved. 
#               1993-1996 fukachan@phys.titech.ac.jp
#               1996-1999 fukachan@sapporo.iij.ad.jp
# 
# FML is free software; you can redistribute it and/or modify
# it under the terms of GNU General Public License.
# See the file COPYING for more details.