MLサーバのホスト上でコマンドを使うと(ML管理者に)できること makefml の基本的な使い方は &fml4; の makefml と同様です。 できるだけ同じ使い勝手になるように、 つまり互換性を保つようにしてあります。 相違点についての詳細は 』 を参照して下さい。 ホスト上でできること、その権限について makefml を使う操作は confirmation が不要です。makefml を実行できる時点 で特権的なユーザのはずだからです。たとえば、メンバーの登録は、コマンド を実行すると、そのまま処理が行なわれます。 MLサーバのホストに入ることができる(例: slogin してシェルが取れる)人 は、MLにとって最強の権限を持つ人を意味します。ファイルを直接編集する ことで、どんなことでもできるわけですから、無敵です。 だから特権的な操作であるわけです。 しかしながら、人間まちがいを犯すもので、ついファイルのフォーマットを間 違えたりします。 そのためファイルの直接編集などはせずに、通常は「makefml ( /usr/local/bin/makefml )コマンドを使うことで fml の設定を変更して下さ い」という運用ポリシーが推奨されています。もちろんファイルを編集しても かまいませんが、その場合、内部構造などをよく理解してからにしてください。 なお、fml コマンドは引数の順番の異なる makefml です。 makefml コマンド ML名 オプション fml ML名 コマンド オプション コマンドの中身/動作は同じですので、 シンタックスの好き嫌いで、どちらかを選んで使ってもらえばよいでしょう。 コマンドを用意する基準 &fmldevel; では、機能ごとに個別にコマンドを用意するようにしていますが、 どうも、このポリシーでは、やたらと多くなるだけのようです。「できるだけ 分離せずに makefml に統合するべき」でしょう。そこで、以下のような基準 に基づき用意することにします(2003/03 記)。makefml に統合してある方が admin コマンドや CGI でも使えるようになりうるので、再利用性が高く、 有益です。 特定のMLに操作を施すコマンド (read/write) 特定のMLに対し、何らかのデータを見るだけでなく変更/書き込み操作をす る可能性があるなら、makefml (or fml) のコマンドとして実装します。 makefml コマンド ML名 オプション fml ML名 コマンド オプション 特定のMLのデータを見るコマンド (read only) 特定のMLに対し、データ(ログや何かのサマリ)を見るだけでも、 makefml (or fml) のコマンドとして実装しましょう。 makefml コマンド ML名 オプション fml ML名 コマンド オプション データを見るだけのコマンド (read only) 特定のMLと関わりのないコマンドがあり得ます。たとえば、モジュールのド キュメントを見るとか、OS のアカウントやエイリアス一覧を表示させる類の ものです。これは fml が頭文字につくコマンドを別途用意します。 fmladdr [-n] fmlalias [-n] fmldoc モジュール名 fmlconf [-n] $ml MLごとの操作だが、単なるコマンドの wrapper PGP / GPG コマンドの操作コマンド(例: fmlpgp)が、これにあたります。 でも、いいのか、この基準は… コマンドラインオプションなどを一切考えない特殊なモードを作り込めば makefml に移すことが出来ないわけではないはずですが、こまりました。 操作を施すコマンドだが、 特定のMLとの関わりはないかも知れないタイプ (read / write ?) これが一番困るケースのような気がしますが、どうしても作る必要があるなら、 fml が頭文字につくコマンドを別途用意します。 例: 記事のスプールを HTML 化する。 でも、fml に限らず、ソースが MH フォルダなどでも構わない。 fmlhtmlify [-I DIR] $src_dir $dst_dir 共通のコマンドラインオプション libexec/ と bin/ にあるプログラム群(.cgi は除く)すべてに共通する コマンドラインオプションは --debug --help -c file -o key=value の4つです。 -c はデフォルトではない main.cf のパスを指定する際に使います。 また、-o により変数(config.cfで指定する変数)の上書きが可能です。 -o は複数回、使っても問題ありません。 -o key1=value1 -o key2=value2 §.usage.makefml; §.usage.fml; §.usage.fmladdr; §.usage.fmlalias; §.usage.fmlconf; §.usage.fmldoc; §.usage.fmlhtmlify; §.usage.fmlsummary; §.usage.fmlthread;