Aturan
sh_binary
Melihat sumber aturansh_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 nama yang salah: outputnya tidak harus berupa biner.) Aturan ini memastikan
bahwa semua dependensi di-build, 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
mengikuti shebang, sehingga 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; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah deps
di Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Daftar label; wajib diisi File yang berisi skrip shell.
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dieksekusi, dan dapat berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip maupun data) termasuk dalam
atribut |
sh_library
Melihat sumber aturansh_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 untuk 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 tersebut pada
waktu proses. "Library" tersebut 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": bagaimanapun, program ini
hanyalah "data" dari sudut pandang penafsir. Oleh karena itu,
aturan ini memiliki tiga atribut yang pada dasarnya setara:
srcs
, deps
, dan data
.
Implementasi saat ini tidak membedakan elemen daftar ini.
Ketiga atribut tersebut menerima aturan, file sumber, dan file yang dihasilkan.
Namun, sebaiknya gunakan atribut untuk tujuan biasanya (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; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah deps
di Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Daftar label; default-nya adalah
Atribut ini harus digunakan untuk mencantumkan file sumber skrip shell yang termasuk dalam
library ini. Skrip dapat memuat skrip lain menggunakan perintah |
sh_test
Melihat sumber aturansh_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; wajib Nama unik untuk target ini. |
deps
|
Daftar label; default-nya adalah deps
di Atribut umum yang ditentukan oleh
sebagian besar aturan build.
Atribut ini harus digunakan untuk mencantumkan aturan |
srcs
|
Daftar label; wajib diisi File yang berisi skrip shell.
Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell.
Skrip ini harus dapat dieksekusi, dan dapat berupa file sumber atau file yang dihasilkan.
Semua file lain yang diperlukan saat runtime (baik skrip maupun data) termasuk dalam
atribut |