Kabuk Kuralları

Kurallar

sh_binary

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 bir yanlış addır: Çıktıları her zaman ikili olmayabilir.) Bu kural, tüm bağımlılıkların derlenmesini ve yürütme sırasında runfiles alanında görünmesini sağlar. sh_binary() kurallarınızı, komut dosyası adından uzantıyı (ör..sh) çıkararak adlandırmanızı öneririz. Kural adı ve dosya adı farklı olmalıdır. sh_binary, kabartmalara saygı duyar. Bu nedenle, mevcut tercümanlar kullanılabilir (ör. #!/bin/zsh)

Örnek

Bağımlılığı olmayan basit bir kabuk komut dosyası ve bazı veri dosyaları 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 hedefte toplanacak "kitaplık" hedeflerinin listesi. Çoğu derleme kuralı tarafından tanımlanan genel özellikler bölümünde deps ile ilgili genel yorumlara bakın.

Bu özellik, srcs içindeki kodun bağımlı olduğu 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 içinde yer alacak.

srcs

List of labels; required

Kabuk komut dosyasını içeren dosya.

Bu özellik, öğesi kabuk komut dosyası olan bir tekil liste olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve bir 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

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ı, ilgili komut dosyalarından (Bourne kabuğu gibi derleme veya bağlantı gerektirmeyen, yorumlanmış bir dildeki programlar) ve bu programların çalışma zamanında ihtiyaç duyduğu tüm verileri içeren mantıksal bir "kitaplığı" toplamaktı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ı birleştirmek için filegroup kuralını kullanabilirsiniz.

Yorumlanan programlama dillerinde "kod" ile "veri" arasında her zaman net bir ayrım yoktur. Sonuçta, program çevirmenin bakış açısından yalnızca "veri"dir. Bu nedenle bu kural, temelde eşdeğer olan üç özelliğe sahiptir: srcs, deps ve data. Mevcut uygulama, bu listelerin öğeleri arasında ayrım yapmamaktadır. Bu üç özellik de kuralları, kaynak dosyaları ve oluşturulan dosyaları kabul eder. Ancak, özelliklerin alışılmış amaçları doğrultusunda (diğer kurallarda olduğu gibi) kullanılması önerilir.

Ö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 hedefte toplanacak "kitaplık" hedeflerinin listesi. Çoğu derleme kuralı tarafından tanımlanan genel özellikler bölümünde deps ile ilgili genel yorumlara bakın.

Bu özellik, srcs içindeki kodun bağımlı olduğu 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 içinde yer alacak.

srcs

List of labels; optional

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

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 özelliklere (*_test) bakın.

Ö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 hedefte toplanacak "kitaplık" hedeflerinin listesi. Çoğu derleme kuralı tarafından tanımlanan genel özellikler bölümünde deps ile ilgili genel yorumlara bakın.

Bu özellik, srcs içindeki kodun bağımlı olduğu 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 içinde yer alacak.

srcs

List of labels; required

Kabuk komut dosyasını içeren dosya.

Bu özellik, öğesi kabuk komut dosyası olan bir tekil liste olmalıdır. Bu komut dosyası yürütülebilir olmalıdır ve bir 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.