Kabuk Kuralları

Sorun bildir Kaynağı görüntüle Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Kurallar

sh_binary

Kural kaynağını görüntüleme
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ış bir terimdir: Çıktıları mutlaka ikili dosyalar değildir.) Bu kural, tüm bağımlılıkların oluşturulmasını 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 uzantı çıkarılarak oluşturulan adla (ör..sh) adlandırmanızı öneririz. Kural adı ve dosya adı birbirinden farklı olmalıdır. sh_binary, shebang'lara saygı gösterdiğinden mevcut herhangi bir yorumlayıcı kullanılabilir (ör. #!/bin/zsh)

Örnek

Bağımlılığı olmayan 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

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Bu hedefte toplanacak "kitaplık" hedeflerinin listesi. deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.

Bu özellik, srcs kodunun dayandığı yorumlanmış 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 bulunur.

srcs

Etiketler listesi; zorunlu

Kabuk komut dosyasını içeren dosya.

Bu özellik, kabuk komut dosyası öğesinin bulunduğu tek bir öğe içeren bir liste olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve kaynak dosya veya oluşturulmuş dosya olabilir. Çalışma zamanında gerekli olan diğer tüm dosyalar (skriptler veya veriler) data özelliğine aittir.

sh_library

Kural kaynağını görüntüleme
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 temel amacı, ilgili komut dosyalarından (Bourne kabuğu gibi derleme veya bağlama gerektirmeyen bir yorumlanmış dilde yazılmış programlar) ve bu programların çalışma zamanında ihtiyaç duyduğu tüm verilerden oluşan mantıksal bir "kitaplık" oluşturmaktı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.

Yorumlanmış programlama dillerinde "kod" ile "veri" arasında her zaman net bir ayrım yoktur: Sonuçta program, yorumlayıcının bakış açısından yalnızca "veridir". Bu nedenle, bu kuralın temelde eşdeğer olan üç özelliği vardır: srcs, deps ve data. Mevcut uygulamada bu listelerin öğeleri birbirinden ayırt edilmez. Bu üç özellik de kuralları, kaynak dosyaları ve oluşturulan dosyaları kabul eder. Ancak özellikleri normal amaçları için kullanmak (diğer kurallarda olduğu gibi) 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

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Bu hedefte toplanacak "kitaplık" hedeflerinin listesi. deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.

Bu özellik, srcs kodunun dayandığı yorumlanmış 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 bulunur.

srcs

Etiketler listesi; varsayılan değer []'dir.

Giriş dosyalarının listesi.

Bu özellik, bu kitaplığa ait 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örüntüleme
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 kabuğu 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

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Bu hedefte toplanacak "kitaplık" hedeflerinin listesi. deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.

Bu özellik, srcs kodunun dayandığı yorumlanmış 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 bulunur.

srcs

Etiketler listesi; zorunlu

Kabuk komut dosyasını içeren dosya.

Bu özellik, kabuk komut dosyası öğesinin bulunduğu tek bir öğe içeren bir liste olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve kaynak dosya veya oluşturulmuş dosya olabilir. Çalışma zamanında gerekli olan diğer tüm dosyalar (skriptler veya veriler) data özelliğine aittir.