シェルルール

問題を報告 ソースを表示

ルール

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

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

このターゲットに集約される「library」ターゲットのリスト。 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

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

このターゲットに集約される「library」ターゲットのリスト。 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

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

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

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

srcs

ラベルのリスト。必須

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

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