Aturan Shell

Laporkan masalah Lihat sumber

Aturan

sh_binary

Lihat sumber aturan
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 selalu biner.) Aturan ini memastikan semua dependensi di-build, dan muncul di area runfiles pada waktu eksekusi. Sebaiknya beri nama aturan sh_binary() setelah nama skrip dikurangi ekstensi (misalnya .sh); nama aturan dan nama file harus berbeda. sh_binary mematuhi Shebang, sehingga semua 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

Name; required

Nama unik untuk target ini.

deps

List of labels; optional

Daftar target "library" akan digabungkan ke 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 ditafsirkan yang bergantung pada kode di srcs. File yang diberikan oleh aturan ini akan ada di antara runfiles target ini.

srcs

List of labels; required

File yang berisi skrip shell.

Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell. Skrip ini harus dapat dijalankan, dan mungkin merupakan file sumber atau file yang dihasilkan. Semua file lain yang diperlukan saat runtime (baik skrip maupun data) berada dalam atribut data.

sh_library

Lihat sumber aturan
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 tafsiran yang tidak memerlukan kompilasi atau penautan, seperti shell Bourne—dan data apa pun yang diperlukan program tersebut pada runtime. "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 juga, program ini hanya berupa "data" dari sudut pandang penafsir. Untuk alasan ini, aturan ini memiliki tiga atribut yang pada dasarnya setara: srcs, deps, dan data. Implementasi saat ini tidak membedakan antara elemen daftar ini. Ketiga atribut tersebut menerima aturan, file sumber, dan file yang dihasilkan. Namun, sebaiknya gunakan atribut untuk tujuan tersebut (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

Name; required

Nama unik untuk target ini.

deps

List of labels; optional

Daftar target "library" akan digabungkan ke 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 ditafsirkan yang bergantung pada kode di srcs. File yang diberikan oleh aturan ini akan ada di antara runfiles target ini.

srcs

List of labels; optional

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 . dari shell.

sh_test

Lihat sumber aturan
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

Name; required

Nama unik untuk target ini.

deps

List of labels; optional

Daftar target "library" akan digabungkan ke 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 ditafsirkan yang bergantung pada kode di srcs. File yang diberikan oleh aturan ini akan ada di antara runfiles target ini.

srcs

List of labels; required

File yang berisi skrip shell.

Atribut ini harus berupa daftar singleton, yang elemennya adalah skrip shell. Skrip ini harus dapat dijalankan, dan mungkin merupakan file sumber atau file yang dihasilkan. Semua file lain yang diperlukan saat runtime (baik skrip maupun data) berada dalam atribut data.