Aturan Shell

Laporkan masalah Lihat sumber Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Aturan

sh_binary

Lihat sumber aturan
sh_binary(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

Aturan sh_binary digunakan untuk mendeklarasikan skrip shell yang dapat dieksekusi. (sh_binary adalah nama yang tidak tepat: outputnya tidak selalu biner.) Aturan ini memastikan bahwa semua dependensi dibangun, dan muncul di area runfiles pada waktu eksekusi. Sebaiknya beri nama aturan sh_binary() Anda sesuai dengan nama skrip tanpa ekstensi (misalnya, .sh); nama aturan dan nama file harus berbeda. sh_binary mematuhi shebang, sehingga interpreter yang tersedia dapat digunakan (mis. #!/bin/zsh)

Contoh

Untuk skrip shell sederhana tanpa dependensi dan beberapa file data:

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

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; defaultnya adalah []

Daftar target "pustaka" yang akan digabungkan ke dalam target ini. Lihat komentar umum tentang deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.

Atribut ini harus digunakan untuk mencantumkan aturan sh_library lain yang menyediakan kode sumber program yang diinterpretasikan dan bergantung pada kode di srcs. File yang disediakan oleh aturan ini akan ada di antara runfiles target ini.

srcs

Daftar label; defaultnya adalah []

Daftar file input.

Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang termasuk dalam library ini. Skrip dapat memuat skrip lain menggunakan perintah source atau . shell.

env_inherit

Daftar string; defaultnya adalah []

sh_library

Lihat sumber aturan
sh_library(name, deps, srcs, data, aspect_hints, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

Penggunaan utama aturan ini adalah untuk menggabungkan "pustaka" logis yang terdiri dari skrip terkait—program dalam bahasa yang diinterpretasikan yang tidak memerlukan kompilasi atau penautan, seperti Bourne shell—dan data apa pun yang dibutuhkan program tersebut saat runtime. "Pustaka" tersebut kemudian dapat digunakan dari atribut data dari satu atau beberapa aturan sh_binary.

Anda dapat menggunakan aturan filegroup untuk menggabungkan data file.

Dalam bahasa pemrograman yang diinterpretasikan, tidak selalu ada perbedaan yang jelas antara "kode" dan "data": bagaimanapun, program hanyalah "data" dari sudut pandang interpreter. Oleh karena itu, aturan ini memiliki tiga atribut yang pada dasarnya setara: srcs, deps, dan data. Implementasi saat ini tidak membedakan elemen-elemen dalam daftar ini. Ketiga atribut ini menerima aturan, file sumber, dan file yang dihasilkan. Namun, sebaiknya gunakan atribut untuk tujuan biasanya (seperti pada aturan lainnya).

Contoh

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

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; defaultnya adalah []

Daftar target "pustaka" yang akan digabungkan ke dalam target ini. Lihat komentar umum tentang deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.

Atribut ini harus digunakan untuk mencantumkan aturan sh_library lain yang menyediakan kode sumber program yang diinterpretasikan dan bergantung pada kode di srcs. File yang disediakan oleh aturan ini akan ada di antara runfiles target ini.

srcs

Daftar label; defaultnya adalah []

Daftar file input.

Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang termasuk dalam library ini. Skrip dapat memuat skrip lain menggunakan perintah source atau . shell.

sh_test

Lihat sumber aturan
sh_test(name, deps, srcs, data, args, aspect_hints, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, local, package_metadata, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

Aturan sh_binary digunakan untuk mendeklarasikan skrip shell yang dapat dieksekusi. (sh_binary adalah nama yang tidak tepat: outputnya tidak selalu biner.) Aturan ini memastikan bahwa semua dependensi dibangun, dan muncul di area runfiles pada waktu eksekusi. Sebaiknya beri nama aturan sh_binary() Anda sesuai dengan nama skrip tanpa ekstensi (misalnya, .sh); nama aturan dan nama file harus berbeda. sh_binary mematuhi shebang, sehingga interpreter yang tersedia dapat digunakan (mis. #!/bin/zsh)

Contoh

Untuk skrip shell sederhana tanpa dependensi dan beberapa file data:

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

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; defaultnya adalah []

Daftar target "pustaka" yang akan digabungkan ke dalam target ini. Lihat komentar umum tentang deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.

Atribut ini harus digunakan untuk mencantumkan aturan sh_library lain yang menyediakan kode sumber program yang diinterpretasikan dan bergantung pada kode di srcs. File yang disediakan oleh aturan ini akan ada di antara runfiles target ini.

srcs

Daftar label; defaultnya adalah []

Daftar file input.

Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang termasuk dalam library ini. Skrip dapat memuat skrip lain menggunakan perintah source atau . shell.