.\" $NetBSD: rcorder.8,v 1.3 2000/07/17 14:16:22 mrg Exp $ .\" .\" Copyright (c) 1998 .\" Perry E. Metzger. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed for the NetBSD Project .\" by Perry E. Metzger. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" %FreeBSD: src/sbin/rcorder/rcorder.8,v 1.4 2004/07/02 18:37:52 ru Exp % .\" .\" $FreeBSD$ .Dd July 17, 2000 .Dt RCORDER 8 .Os .Sh 名称 .Nm rcorder .Nd 相互に依存するファイル間の依存順序の表示 .Sh 書式 .Nm .Op Fl k Ar keep .Op Fl s Ar skip .Ar .Sh 解説 .Nm ユーティリティは、 相互に依存するファイル間の依存順序を表示するようデザインされています。 典型的には、あるファイルが別のものの前に実行されることが必要だという シェルスクリプト群の実行順序を見付けるために使用されます。 .Pp .Nm に渡される各ファイルは、 特殊行 (シェルにはコメントに見えます) で注釈付けする必要があります。 それらは、 .Dq 条件 と呼ばれるある実行時点にファイルが依存することを示し、 各ファイルがどの .Dq 条件 を満足させ得るのかを示します。 .Pp 各ファイル中には、一連の .Dq Li REQUIRE , .Dq Li PROVIDE , .Dq Li BEFORE , .Dq Li KEYWORD 行を含むブロックが存在することが必要です。 行の書式は厳密です。 各行は、単一の .Ql # で開始し、単一の空白が続き、 .Dq Li PROVIDE: , .Dq Li REQUIRE: , .Dq Li BEFORE: , .Dq Li KEYWORD: のいずれかが続くことが必要です。 逸脱は許されません。 各依存行に続き、一連の条件が空白区切りで続きます。 複数の .Dq Li PROVIDE , .Dq Li REQUIRE , .Dq Li BEFORE , .Dq Li KEYWORD 行が登場して構いませんが、途中に余計な行が入ってはなりません。 書式に合致しない行に到達すると、構文解析が終了します。 .Pp オプションは次の通りです: .Bl -tag -width indent .It Fl k 指定したキーワードを .Dq キープリスト に追加します。 .Fl k オプションを指定すると、合致するキーワードを含むファイルのみが列挙されます。 .It Fl s 指定したキーワードを .Dq スキップリスト に追加します。 .Fl s オプションを指定すると、合致するキーワードを含むファイルは列挙されません。 .El .Pp ブロックの例は次の通りです: .Bd -literal -offset indent # REQUIRE: networking syslog # REQUIRE: usr # PROVIDE: dns nscd .Ed .Pp このブロックが含まれるファイルは .Dq Li networking , .Dq Li syslog , .Dq Li usr の条件に依存し .Dq Li dns , .Dq Li nscd の条件を提供することを、このブロックは述べています。 .Pp ファイルには .Dq Li PROVIDE 行が無くても構いません。 その場合、なにも条件を提供しません。 ファイルには .Dq Li REQUIRE 行が無くても構いません。 その場合、ファイルは何にも依存しません。 依存順序の中の開始点が見付けられるためには、 .Nm に渡される引数の中には依存が無いファイルが少なくとも 1 個は必要です。 .Sh 診断 ファイルリストの処理中にエラーが見付かると、 .Nm ユーティリティは次のエラーメッセージのいずれかを表示し、 非 0 の状態で終了します。 .Bl -diag .It "Requirement %s has no providers, aborting." 別のファイル中の .Dq Li REQUIRE 行に存在する条件に対応する .Dq Li PROVIDE 行を持つファイルがありません。 .It "Circular dependency on provision %s, aborting." 表示された条件の処理中に、 あるファイル群に循環依存関係があることが検出されました。 .It "Circular dependency on file %s, aborting." 表示されたファイルの処理中に、 あるファイル群に循環依存関係があることが検出されました。 .El .Sh 関連項目 .Xr rc 8 .Sh 歴史 .Nm ユーティリティが最初に登場したのは .Nx 1.5 です。 .Sh 作者 .An -nosplit .An Perry E. Metzger Aq perry@piermont.com と .An Matthew R. Green Aq mrg@eterna.com.au が記述しました。