Kabuk Kuralları

Sorun bildirin Kaynağı göster

Kurallar

bin_ikili

Kural kaynağını göster
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)

sh_binary kuralı, yürütülebilir kabuk komut dosyalarını bildirmek için kullanılır. (sh_binary yanlış ad verir: Her zaman çıktı vermesi gerekmez.) Bu kural, tüm bağımlıların derlenmesini ve yürütme sırasında runfiles alanında görünmesini sağlar. sh_binary() kurallarınızı, komut dosyasının adından (ör..sh) sonra adlandırmanızı öneririz. Kural adı ve dosya adı birbirinden farklı olmalıdır. sh_binary kadın çocuğa saygı gösterir. Bu nedenle, çevirmenlerden herhangi biri (ör. #!/bin/zsh)

Örnek

Bağımlılık içermeyen ve bazı veri dosyaları içeren basit bir kabuk komut dosyası için:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

Bağımsız değişkenler

Özellikler
name

Name; required

Bu hedef için benzersiz bir ad.

deps

List of labels; optional

Bu hedef altında toplanan "kitaplık" hedefleri listesi. Çoğu derleme kuralıyla tanımlanan tipik özellikler bölümünde deps hakkındaki genel yorumları görebilirsiniz.

Bu özellik, srcs kodu temel alınarak yorumlanan program kaynak kodu sağlayan diğer sh_library kurallarını listelemek için kullanılmalıdır. Bu kurallar tarafından sağlanan dosyalar bu hedefin runfiles arasında olacaktır.

srcs

List of labels; required

Kabuk komut dosyasını içeren dosya.

Bu özellik, kabuk komut dosyası olan bir singleton listesi olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve kaynak dosya veya oluşturulmuş bir dosya olabilir. Çalışma zamanında gereken diğer tüm dosyalar (komut dosyaları veya veriler) data özelliğine aittir.

sh_library

Kural kaynağını göster
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)

Bu kuralın ana kullanım alanı, ilgili komut dosyalarından oluşan derlenmiş bir "kitaplığı" toplamaktır. Yorumlanan bir dildeki derlemeler (ör. Bourne kabuğu gibi) derleme ya da bağlama gerektirmeyen programlar ve çalışma sırasında gereken tüm veriler bu kapsamda yer alır. Bu tür "kitaplıklar" daha sonra bir veya daha fazla sh_binary kuralının data özelliğinden kullanılabilir.

Veri dosyalarını toplamak için filegroup kuralını kullanabilirsiniz.

Çevrilmiş programlama dillerinde "kod" ile "veri" arasında her zaman net bir ayrım yoktur. Sonuçta, program yalnızca çevirmenin bakış açısından "veri"dir. Bu nedenle bu kuralın temelde eşdeğer olan üç özelliği vardır: srcs, deps ve data. Mevcut uygulama bu listelerin öğelerini ayırt etmez. Bu kuralların üçü de kuralları, kaynak dosyaları ve oluşturulan dosyaları kabul eder. Ancak, diğer kurallarda olduğu gibi özellikleri normal amaçlarıyla kullanmak iyi bir uygulamadır.

Örnekler

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

Bağımsız değişkenler

Özellikler
name

Name; required

Bu hedef için benzersiz bir ad.

deps

List of labels; optional

Bu hedef altında toplanan "kitaplık" hedefleri listesi. Çoğu derleme kuralıyla tanımlanan tipik özellikler bölümünde deps hakkındaki genel yorumları görebilirsiniz.

Bu özellik, srcs kodu temel alınarak yorumlanan program kaynak kodu sağlayan diğer sh_library kurallarını listelemek için kullanılmalıdır. Bu kurallar tarafından sağlanan dosyalar bu hedefin runfiles arasında olacaktır.

srcs

List of labels; optional

Giriş dosyalarının listesi.

Bu özellik, bu kitaplığa ait olan kabuk komut dosyası kaynak dosyalarını listelemek için kullanılmalıdır. Komut dosyaları, kabuğun source veya . komutunu kullanarak diğer komut dosyalarını yükleyebilir.

sh_test

Kural kaynağını göster
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)

sh_test() kuralı, Bourne kabuk komut dosyası olarak yazılmış bir test oluşturur.

Tüm test kurallarında ortak olan özellikleri (*_test) inceleyin.

Örnekler

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

Bağımsız değişkenler

Özellikler
name

Name; required

Bu hedef için benzersiz bir ad.

deps

List of labels; optional

Bu hedef altında toplanan "kitaplık" hedefleri listesi. Çoğu derleme kuralıyla tanımlanan tipik özellikler bölümünde deps hakkındaki genel yorumları görebilirsiniz.

Bu özellik, srcs kodu temel alınarak yorumlanan program kaynak kodu sağlayan diğer sh_library kurallarını listelemek için kullanılmalıdır. Bu kurallar tarafından sağlanan dosyalar bu hedefin runfiles arasında olacaktır.

srcs

List of labels; required

Kabuk komut dosyasını içeren dosya.

Bu özellik, kabuk komut dosyası olan bir singleton listesi olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve kaynak dosya veya oluşturulmuş bir dosya olabilir. Çalışma zamanında gereken diğer tüm dosyalar (komut dosyaları veya veriler) data özelliğine aittir.