ルール
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
ルールのソースを表示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
ルールを使用して、データファイルを集計できます。
インタプリタから見たプログラミング言語では、「コード」と「データ」の間には必ずしも明確な区別はありません。結局のところ、インタプリタから見ると、プログラムは単なる「データ」です。このため、このルールには srcs
、deps
、data
の 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_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
|
ラベルのリスト。必須 シェル スクリプトを含むファイル。
この属性は、要素がシェル スクリプトであるシングルトン リストにする必要があります。このスクリプトは実行可能でなければならず、ソースファイルまたは生成されたファイルを指定できます。実行時に必要となるその他すべてのファイル(スクリプトまたはデータ)は、 |