Aturan
sh_biner
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 harus biner.) Aturan ini memastikan
semua dependensi di-build, dan muncul di area runfiles
pada waktu eksekusi.
Sebaiknya namai aturan sh_binary()
dengan nama skrip dikurangi
ekstensi (misalnya .sh
); nama aturan dan nama file harus berbeda.
sh_binary
menghormati Shebang, jadi setiap penafsir 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 standar yang ditentukan oleh sebagian besar aturan build.
Atribut ini harus digunakan untuk membuat daftar aturan |
srcs
|
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dijalankan, dan dapat berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip atau data) disertakan 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 menggabungkan
"library" logis; yang terdiri dari skrip terkait—program dalam
bahasa yang ditafsirkan yang tidak memerlukan kompilasi atau penautan,
seperti shell Bourne—dan data apa pun yang diperlukan program pada
runtime. "library" kemudian dapat digunakan dari
atribut data
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": pada akhirnya, program ini
hanya "data" dari sudut pandang penerjemah. Oleh karena itu,
aturan ini memiliki tiga atribut yang pada dasarnya sama:
srcs
, deps
, dan data
.
Implementasi saat ini tidak membedakan antara elemen daftar tersebut.
Ketiga atribut ini menerima aturan, file sumber, dan file yang dihasilkan.
Namun, sebaiknya gunakan atribut untuk tujuan biasa (seperti 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 standar yang ditentukan oleh sebagian besar aturan build.
Atribut ini harus digunakan untuk membuat daftar aturan |
srcs
|
Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell milik library ini. Skrip dapat memuat skrip lain menggunakan perintah |
uji sh
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 standar yang ditentukan oleh sebagian besar aturan build.
Atribut ini harus digunakan untuk membuat daftar aturan |
srcs
|
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dijalankan, dan dapat berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip atau data) disertakan dalam atribut |