シェルルール

問題を報告 ソースを表示 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ルール

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

名前: 必須

このターゲットの名前。

deps

ラベルのリスト。デフォルトは [] です。

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

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

srcs

ラベルのリスト。必須

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

この属性は、シェル スクリプトが要素のシングルトン リストである必要があります。このスクリプトは実行可能である必要があります。ソースファイルまたは生成ファイルのいずれかです。実行時に必要な他のすべてのファイル(スクリプトまたはデータ)は、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

名前(必須)

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

deps

ラベルのリスト。デフォルトは [] です。

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

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

srcs

ラベルのリスト。デフォルトは [] です。

入力ファイルのリスト。

この属性は、このライブラリに属するシェル スクリプト ソースファイルを一覧表示するために使用します。スクリプトは、シェルの 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

名前(必須)

このターゲットの名前。

deps

ラベルのリスト。デフォルトは [] です。

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

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

srcs

ラベルのリスト。必須

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

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