シェルルール

問題を報告 ソースを表示

ルール

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 は Shebangs に準拠するため、利用可能な任意のインタープリタを使用できます(#!/bin/zsh

依存関係がなく、データファイルがない単純なシェル スクリプトの場合:

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

引数

属性
name

Name; required

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

deps

List of labels; optional

このターゲットに集約する「ライブラリ」ターゲットのリスト。 ほとんどのビルドルールで定義されている一般的な属性で、deps に関する一般的なコメントをご覧ください。

この属性を使用して、srcs のコードに依存する依存するプログラム ソースコードを提供する他の sh_library ルールをリストします。このルールによって提供されるファイルは、このターゲットの 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)

このルールの主な用途は、関連するスクリプト(Bourne シェルなど、コンパイルやリンクを必要としない解釈可能な言語のプログラム)と、プログラムによって実行時に必要となるすべてのデータで構成される論理「ライブラリ」を集約することです。このような「ライブラリ」は、1 つ以上の sh_binary ルールの data 属性から使用できます。

filegroup ルールを使用して、データファイルを集約できます。

解釈されたプログラミング言語では、「コード」と「データ」の間に明確な区別があるとは限りません。結局のところ、インタープリタの視点から見ると、プログラムは「データ」にすぎません。このため、このルールには srcsdepsdata の 3 つの属性があり、どちらも本質的に同等です。現在の実装では、上記のリストの要素は区別されません。 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

このターゲットに集約する「ライブラリ」ターゲットのリスト。 ほとんどのビルドルールで定義されている一般的な属性で、deps に関する一般的なコメントをご覧ください。

この属性を使用して、srcs のコードに依存する依存するプログラム ソースコードを提供する他の sh_library ルールをリストします。このルールによって提供されるファイルは、このターゲットの 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

このターゲットに集約する「ライブラリ」ターゲットのリスト。 ほとんどのビルドルールで定義されている一般的な属性で、deps に関する一般的なコメントをご覧ください。

この属性を使用して、srcs のコードに依存する依存するプログラム ソースコードを提供する他の sh_library ルールをリストします。このルールによって提供されるファイルは、このターゲットの runfiles の中に存在します。

srcs

List of labels; required

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

この属性はシングルトン リストである必要があります。その要素はシェル スクリプトです。 このスクリプトは実行可能である必要があります。ソースファイルと生成されたファイルのどちらでもかまいません。実行時に必要なその他すべてのファイル(スクリプトまたはデータ)は、data 属性に属します。