インストール中に複数のファイルを編集する最も効率的な方法は、クラスを定義し、クラスアクションスクリプトを作成することです。build クラスによるアプローチを使用した場合は、編集する crontab ファイルごとに 1 つの build クラススクリプトを作成する必要があります。cron クラスを定義する方法は、より汎用性のあるアプローチとなります。このアプローチで crontab ファイルを編集するには、次の作業を行う必要があります。
prototype ファイルで、編集対象の crontab ファイルを定義します。
prototype ファイルで、編集対象の crontab ファイルごとにエントリを作成します。クラスを cron として定義し、ファイルタイプをファイルごとに e として定義します。編集対象とするファイルの実際の名前を使用してください。
パッケージ用の crontab ファイルを作成します。
これらのファイルには、同じ名前の既存の crontab ファイルに追加する情報を格納します。
cron クラス用のインストールクラスアクションスクリプトを作成します。
サンプルの i.cron スクリプトは、次の手順を実行します。
ユーザー ID (UID) を決定する。
i.cron スクリプトは、変数 user を、処理対象の cron クラススクリプトのベース名に設定します。この名前が UID です。たとえば、/var/spool/cron/crontabs/root のベース名は root で、これが UID でもあります。
UID と -l オプションを使用して、crontab を実行します。
-l オプションは、定義されたユーザーの crontab ファイルの内容を標準出力に送信するように、crontab に指示します。
crontab コマンドの出力を、このインストール手法で以前に追加されたすべてのエントリを削除する sed スクリプトにパイプで連結します。
編集された出力を一時ファイルに置きます。
ルート UID のデータファイル (パッケージとともに提供されたもの) を一時ファイルに追加し、これらのエントリの出自を示すタグを追加します。
同じ UID の crontab を実行し、一時ファイルを入力として指定します。
cron クラス用の削除クラスアクションスクリプトを作成します。
r.cron スクリプトは、crontab ファイルに情報を追加する手順がない点を除き、インストールスクリプトと同じです。
これらの手順は、cron クラスのすべてのファイルに対して実行されます。