Aturan
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)
Aturan sh_binary digunakan untuk mendeklarasikan skrip shell yang dapat dieksekusi.
(sh_binary adalah istilah yang salah: output-nya tidak selalu berupa biner.) Aturan ini memastikan
bahwa semua dependensi dibangun, dan muncul di area runfiles pada waktu eksekusi.
Sebaiknya beri nama aturan sh_binary() Anda sesuai nama skrip dikurangi
ekstensi (misalnya, .sh); nama aturan dan nama file harus berbeda.
sh_binary mematuhi Shebang, sehingga penafsiran apa pun yang tersedia dapat digunakan (misalnya
#!/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 unik untuk target ini. |
deps
|
deps
pada Atribut umum didefinisikan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dieksekusi, dan boleh berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip maupun data) termasuk dalam
Atribut |
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)
Penggunaan utama aturan ini adalah untuk menggabungkan
"perpustakaan" yang terdiri dari skrip terkait—program dalam
bahasa pemrograman tafsiran yang tidak memerlukan kompilasi atau penautan,
seperti {i>shell Bourne<i}—dan data apa pun yang dibutuhkan program itu
waktu proses. "Perpustakaan" semacam itu dapat digunakan dari
atribut data dari satu atau
aturan sh_binary lainnya.
Anda dapat menggunakan aturan filegroup untuk menggabungkan data
.
Dalam bahasa pemrograman yang
ditafsirkan, tidak selalu ada
perbedaan antara "kode" dan “data”: bagaimanapun juga, program ini
hanya "data" dari sudut pandang penafsir. Karena alasan ini
aturan ini memiliki tiga atribut yang pada dasarnya setara:
srcs, deps, dan data.
Implementasi saat ini tidak membedakan elemen-elemen dari daftar tersebut.
Ketiga atribut tersebut menerima aturan, file sumber, dan file yang dihasilkan.
Namun, sebaiknya gunakan atribut tersebut untuk tujuan umum (seperti halnya 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 unik untuk target ini. |
deps
|
deps
pada Atribut umum didefinisikan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang menjadi milik
{i>library<i} ini. Skrip dapat memuat skrip lain menggunakan |
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)
Aturan sh_test() membuat pengujian yang ditulis sebagai skrip shell Bourne.
Lihat atribut yang umum untuk semua aturan pengujian (*_test).
Contoh
sh_test(
name = "foo_integration_test",
size = "small",
srcs = ["foo_integration_test.sh"],
deps = [":foo_sh_lib"],
data = glob(["testdata/*.txt"]),
)
Argumen
| Atribut | |
|---|---|
name |
Nama unik untuk target ini. |
deps
|
deps
pada Atribut umum didefinisikan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dieksekusi, dan boleh berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip maupun data) termasuk dalam
Atribut |