シェルルール

ルール

sh_binary

sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

sh_binary ルールは、実行可能なシェル スクリプトを宣言するために使用されます。 (sh_binary は誤った名称であり、その出力は必ずしもバイナリではありません)。このルールにより すべての依存関係がビルドされ、実行時に runfiles 領域に表示されることを確認します。 sh_binary() ルールの名前は、スクリプトの名前から始まり、 拡張子(例: .sh)。ルール名とファイル名は一意である必要があります。 sh_binary ではシェバンが尊重されるため、利用可能な通訳を使用できます(例: #!/bin/zsh)

依存関係がなく、データファイルがいくつかあるシンプルなシェル スクリプトの場合:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

引数

属性
name

Name; required

このターゲットの一意の名前。

deps

List of labels; optional

「library」のリストはこのターゲットに集約されます deps に関する一般的なコメントを見る で定義される一般的な属性は ほとんどのビルドルールに適用されます。

この属性は、次の属性を指定する他の sh_library ルールをリストするために使用します。 srcs 内のコードによって依存する、解釈されたプログラムのソースコード。ファイル これらのルールによって指定された値が、このターゲットの runfiles の中に存在します。

srcs

List of labels; required

シェル スクリプトを含むファイル。

この属性は、要素がシェル スクリプトであるシングルトン リストである必要があります。 このスクリプトは実行可能でなければならず、ソースファイルまたは生成されたファイルを指定できます。 実行時に必要なその他のファイル(スクリプトまたはデータ)はすべて、 data 属性。

sh_library

sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

このルールの主な用途は、1 つの論理的な境界を 1 つの 「library」関連スクリプト(1 つのコード内でのプログラム)で コンパイルやリンクを必要としないインタプリタ言語 そのプログラムに必要なあらゆるデータを あります。そのような「図書館」その API を使用して 1 つ以上の data 属性 他 sh_binary 個のルール。

filegroup ルールを使用してデータを集計できます。 できます。

インタプリタ型プログラミング言語では、 「code」とそして "data": 結局、プログラムは 単なる「データ」難しいと感じるでしょうこのため、 このルールには、基本的にすべて同じ 3 つの属性があります。 srcsdepsdata。 現在の実装では、これらのリストの要素が区別されません。 これら 3 つの属性はすべて、ルール、ソースファイル、生成されたファイルを受け入れます。 ただし、属性は(他のルールと同様に)通常の目的に使用することをおすすめします。

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

引数

属性
name

Name; required

このターゲットの一意の名前。

deps

List of labels; optional

「library」のリストはこのターゲットに集約されます deps に関する一般的なコメントを見る で定義される一般的な属性は ほとんどのビルドルールに適用されます。

この属性は、次の属性を指定する他の sh_library ルールをリストするために使用します。 srcs 内のコードによって依存する、解釈されたプログラムのソースコード。ファイル これらのルールによって指定された値が、このターゲットの runfiles の中に存在します。

srcs

List of labels; optional

入力ファイルのリスト。

この属性は、属しているシェル スクリプトのソースファイルをリストするために使用します。 使用できます。スクリプトは、シェルの source を使用して他のスクリプトを読み込むことができます。 または . コマンドを使用します。

sh_test

sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

sh_test() ルールは、Bourne シェル スクリプトとして記述されたテストを作成します。

詳しくは、 すべてのテストルールに共通する属性(*_test)

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

引数

属性
name

Name; required

このターゲットの一意の名前。

deps

List of labels; optional

「library」のリストはこのターゲットに集約されます deps に関する一般的なコメントを見る で定義される一般的な属性は ほとんどのビルドルールに適用されます。

この属性は、次の属性を指定する他の sh_library ルールをリストするために使用します。 srcs 内のコードによって依存する、解釈されたプログラムのソースコード。ファイル これらのルールによって指定された値が、このターゲットの runfiles の中に存在します。

srcs

List of labels; required

シェル スクリプトを含むファイル。

この属性は、要素がシェル スクリプトであるシングルトン リストである必要があります。 このスクリプトは実行可能でなければならず、ソースファイルまたは生成されたファイルを指定できます。 実行時に必要なその他のファイル(スクリプトまたはデータ)はすべて、 data 属性。