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: outputnya tidak harus berupa biner.) Aturan ini memastikan
bahwa semua dependensi dibuat, dan muncul di area runfiles
pada waktu eksekusi.
Sebaiknya namai aturan sh_binary()
sesuai dengan nama skrip tanpa ekstensi (misalnya .sh
); nama aturan dan nama file harus berbeda.
sh_binary
menghormati shebang, sehingga penerjemah 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 di Atribut umum yang ditentukan 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 dijalankan, dan mungkin berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan pada runtime (baik skrip maupun data) berada 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 "library" logis yang terdiri dari skrip terkait—program dalam bahasa pemrograman tafsiran yang tidak memerlukan kompilasi atau penautan, seperti Bourne shell—dan data apa pun yang diperlukan program tersebut saat runtime. "Library" tersebut kemudian dapat digunakan dari
atribut data
yang terdiri dari satu atau
beberapa aturan sh_binary
.
Anda dapat menggunakan aturan filegroup
untuk menggabungkan file
data.
Dalam bahasa pemrograman yang ditafsirkan, tidak selalu ada perbedaan yang jelas antara "kode" dan "data": lagi pula, program ini hanyalah "data" dari sudut pandang penafsir. Karena alasan ini,
aturan ini memiliki tiga atribut yang semuanya pada dasarnya setara:
srcs
, deps
, dan data
.
Penerapan saat ini tidak membedakan elemen-elemen dalam daftar ini.
Ketiga atribut ini menerima aturan, file sumber, dan file yang dihasilkan.
Namun, praktik yang baik adalah menggunakan 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 unik untuk target ini. |
deps
|
deps di Atribut umum yang ditentukan oleh sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang termasuk dalam
library ini. Skrip dapat memuat skrip lain menggunakan perintah |
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 di Atribut umum yang ditentukan 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 dijalankan, dan mungkin berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan pada runtime (baik skrip maupun data) berada dalam atribut
|