mksigen2_pub(8)

Date: 2004/02/07
Source: 地球流体電脳倶楽部
Title: 保守コマンドmksigenの亜種その2


名前

mksigen2_pub - 公開用資源リストの生成

書式

mksigen2_pub.pl [-nvV] [-c configfile]

説明

mksigen2_pub は mksigen (地球流体電脳倶楽部の資源リスト (各ディレクトリの SIGEN.htm) を生成するコマンド http://www.gfd-dennou.org/arch/cc-env/mksigen/desc.htm ) の改造版です。

mksigen2_pub の動作は、ほとんど mksigen2(8) と変わりません。異なる点は以下の通りです。

*
mksigen2(8) では生成するファイルの名前は SIGEN.htm ですが、mksigen2_pub では SIGEN_PUB.htm を生成します。
*
デフォルトで読み込む設定ファイルは mksigen2.conf では なく mksigen2_pub.conf となっています。
*
mksigen2(8) は内部的に利用することを想定しているので、出力する SIGEN.htm のパーミッションは 600 となっていますが、 mksigen2_pub で出力される SIGEN_PUB.htm のパーミッションは 664 となっています。

これらの違いは、 mksigen2(8) によって内部 (自分) 用の SIGEN.htm を作成し、 mksigen2_pub(8) によって公開用の SIGEN_PUB.htm を作成することを想定しています。

mksigen2_pub は起動されると、まず設定ファイルを読み取ります。 詳細については「設定ファイル」の項を参照してください。

つぎに mksigen2_pub は設定ファイルの Topdir: で指定された ディレクトリから再帰的に資源の説明ファイルを探索します。 説明ファイルは資源 (ファイルやディレクトリ) の説明を書くためのファイルで、 説明される資源の名前に ".SIGEN" を付加した 名前をもちます。 説明ファイルの形式については mksigen2-sigen(5) を参照してください。

再帰的探索の対象となるディレクトリは、

説明ファイルがあり、
説明ファイルの Prune: ( mksigen2-sigen(5) 参照) が有効になっておらず、
ディレクトリが書き込み可能であるもの
です。

探索の対象となったディレクトリすべてに資源のリスト SIGEN_PUB.htm が生成されます。 ここでリストアップされるのは、 当該ディレクトリの中にあるすべてのファイル (SIGEN.*, *.SIGEN とサブディレクトリの中のファイルは含まれません) と 当該ディレクトリ以下にあるすべての資源 (サブディレクトリの中も含みます) です。

リストの各項目には次のような情報が記載されます:

ファイル名
SIGEN_PUB.htm のあるディレクトリからの相対パスが記載されます。 この部分は当該ファイルへのハイパーリンクとなりますが、 ファイルがディレクトリであり、再帰的探索の対象となった場合は その中の SIGEN_PUB.htm へのハイパーリンクとなります (この場合、ファイル名は太文字で表示されます)。 またファイル名に続いて、ファイルがディレクトリであれば "/" が、 シンボリックリンクであれば "@" が、 シンボリックリンクの指示先が存在しなければ "@ (symlink broken)" が、 その他面妖なものであれば "?" が付加されます。
説明ファイルの情報
Subject: Maintainer: Update: Description: Note: が表示の対象となります。

オプション

オプションは perl ライブラリの getopts.pl を用いて解析されます。 もし getopts.pl が利用できない場合の挙動は オプションが与えられない場合と等価です。

-V
mksigen2_pub.pl の RCS リビジョンを表示して終了します。
-v
動作の詳細を表示するようになります。
-c configfile
設定ファイルを configfile に変更します。
-n
各 SIGEN_PUB.htm ファイルへの書き出しを行いません。 また -v オプションが暗黙に指定されます。

設定ファイル

mksigen2_pub はすべてのパラメタを 設定ファイルから読みとります。 デフォルトでは mksigen2_pub.pl の置かれているディレクトリからみて ../lib/mksigen2_pub.conf もしくは /etc/mksigen2_pub.conf から読み取ろうとしますが、 ファイル名は -c オプションで変更可能です。

設定ファイルはインターネットの電子メールに類似した形式です。 有効なフィールド名を以下に示します。 無効なフィールドは単に無視されます。

必須のもの

Topdir:
mksigen2_pub が探索を開始するディレクトリを指示します。 プログラムがどこで起動されても問題を起こさないようにフルパスを使ってください。
TopTitle:
Topdir の名前を指示します。 普段は Topdir: と同じ文字列をあたえておいてください。 この機能は将来電脳サーバのディスク構成を一時的に変更する必要があったときに フルパスを表示させたくない場合のために用意されています。
Heading:
出力される各ページの先頭に (ページのタイトルの前に) 表示される文字列です。 この機能は「地球流体電脳倶楽部」の表示をさせるために用意されています。

あってもなくてもよいもの

FGColor: #color
デフォルトの文字色を指定します。 最もブラウザへの依存度の小さい記述法は、 番号記号 (#) のあとに RGB の数値をそれぞれ16進数で2桁づつ、 あわせて6桁で指定することです。 この機能を使うと <BODY FGCOLOR="#color"> のようなタグが生成されます。 この機能は HTML 2.0 より後の拡張であり、したがってすべてのブラウザで 色がサポートされるわけではないことに注意してください。
BGColor: #color
バックグラウンド色を指定します。 色の指定に関する詳細は "FGColor" を参照してください。 この機能を使うと <BODY BGCOLOR="#color"> のようなタグが生成されます。
LinkColor: #color
リンクの文字色を指定します。 色の指定に関する詳細は "FGColor" を参照してください。 この機能を使うと <BODY LINK="#color"> のようなタグが生成されます。
VLinkColor: #color
訪れたことのあるリンクの文字色を指定します。 色の指定に関する詳細は "FGColor" を参照してください。 この機能を使うと <BODY VLINK="#color"> のようなタグが生成されます。
ALinkColor: #color
マウスでクリックした時のリンクの文字色を指定します。 色の指定に関する詳細は "FGColor" を参照してください。 この機能を使うと <BODY ALINK="#color"> のようなタグが生成されます。
HoverColor: #color
マウスで上に乗せた時のリンクの文字色を指定します。 色の指定に関する詳細は "FGColor" を参照してください。 この機能を使うと <HEAD> タグ内に<style type="text/css"> <!-- A:HOVER{COLOR:#color;} --> </style> といったスタイル指定 が為されます。
AckText:
出力される各ページの末尾に付加されるメッセージを指定します。 AckLink が指定されている場合ふたつのコロン "::" で囲まれた部分は AckLink へのリンクに変換されます。
AckLink:
AckText: によって出力されるメッセージから張られるリンクを指定します。 この機能はこのマニュアルへの参照を すべてのページに付加できるように用意されています。
IgnorePat:
無視すべきファイル名を perl(1) の正規表現で記述します。 この機能は lost+found や *.bak などをリストアップしないために用意されています。
Indent:
SIGEN_PUB.htm の中での資源の名前の配置を指定します。 このフィールドを指定しないか perl の論理値で偽の場合(つまり空か "0" の場合)、 これらは単に <DL>...</DL> の中に列挙されます。 このフィールドを真にすると、 資源はディレクトリ構造に従って <DL>...</DL> を入れ子に使ってインデントしたように表示されます。
Summarize:
このフィールドを指定しないか perl の論理値で偽の場合、 SIGEN_PUB.htm にはそのディレクトリ以下のすべての資源が列挙されます。 このフィールドを真にすると、 資源とファイルのリストを「要約」と「詳細」に分けて 表示するようにします。 「詳細」はデフォルトで表示されるものです。 「要約」は当該ディレクトリにあるファイルまたはディレクトリだけを列挙した ものです。
SummaryText:
「要約」の題字です。デフォルトでは "summary" が使用されます。
DetailText:
「詳細」の題字です。デフォルトでは "detail" が使用されます。
ForceGid:
/etc/group にあるグループ名を指定します。 このフィールドが指定されていると、 そのグループのメンバだけが mksigen2_pub を起動できるようになります。 また、root が起動すると指定されたグループに setgid されます。 このことによって生成されるファイルは当該グループのものであることが保証され、 グループのメンバであれば誰でもファイルを読み書きできるようになります。 また、このフィールドを指定すると umask 値に 0660 のビットのどれかが立っている場合そのビットが落とされます。 egid や umask を変更する際には警告メッセージが表示されます。

ファイル

mksigen2_pub のおかれるディレクトリには以下のような構造があります:
bin/mksigen2_pub.pl
このプログラム本体です。
/etc/mksigen2_pub.conf
lib/mksigen2_pub.conf
設定ファイルです。
doc/
このドキュメントです。

参照

nkf(1), perl(1), mksigen2(5) mksigen2-sigen(5)

バグ

プログラムの置かれているディレクトリの探索は argv[0] ( perl(1) では $0) と PATH 環境変数を用いて行われます。 この判定は通常のシェルから起動された場合は問題を起こしませんが、 argv[0] を操作するようなプログラムから起動された場合には設定ファイルを 発見できなくなります。

設定ファイル・資源説明ファイルの漢字コードがどうであっても、 漢字は内部的には日本語 EUC で処理されます。 SIGEN_PUB.htm は日本語 EUC で書き出されます。 (これはオリジナルの mksigen と大きく異なる所です) これらの変換は nkf(1) で行われます。つまり nkf(1) がないと動作しません。

ForceGid: フィールドによるグループ ID の強制にはバグがあって、 指定グループがプライマリグループでないユーザでも mksigen2_pub を起動できてしまいます。 しかし電脳サーバでは dcstaff グループのメンバのプライマリグループは dcstaff か dcdvlop であり、 dcstaff のメンバはすべて dcdvlop に属しているので 問題は起こらないはずです。

履歴

2004/02/07 森川靖大 mksigen のドキュメントを勝手に改造して作成

HTML generated using htroff at 8 February 2004 23:20:29.