Kurallar
sh_binary
Kural kaynağını göstersh_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)
Yürütülebilir kabuk komut dosyalarını bildirmek için sh_binary
kuralı kullanılır.
(sh_binary
yanlış bir terimdir: Çıkışları her zaman ikili sayı 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ının adından (ör..sh
) çıkarılarak adlandırmanızı öneririz. Kural adı ve dosya adı farklı olmalıdır.
sh_binary
, tebüllere saygı gösterir, bu nedenle uygun bir çevirmen (ö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 |
Ad; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
Bu özellik, |
srcs
|
Etiket listesi; zorunlu 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 kaynak dosya ya da oluşturulmuş bir dosya olabilir.
Çalışma zamanında gereken diğer tüm dosyalar (komut dosyaları veya veriler) |
sh_library
Kural kaynağını göstersh_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 dilde programlar) ve bu programların çalışma zamanında ihtiyaç duyduğu verileri bir araya getirmektir. 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ına göre yalnızca "veriler"dir. Bu nedenle bu kural, tümü temelde eşdeğer olan üç özelliğe sahiptir: srcs
, deps
ve data
.
Mevcut uygulama, bu listelerin öğelerini birbirinden ayırt etmiyor.
Üç özellik de kuralları, kaynak dosyaları ve oluşturulan dosyaları kabul eder.
Bununla birlikte, özelliklerin genel amaçları doğrultusunda kullanılması (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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
Bu özellik, |
srcs
|
Etiket listesi; varsayılan
Bu özellik, bu kitaplığa ait kabuk komut dosyası kaynak dosyalarını listelemek için kullanılmalıdır. Komut dosyaları, kabuğun |
sh_test
Kural kaynağını göstersh_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 |
Ad; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
Bu özellik, |
srcs
|
Etiket listesi; zorunlu 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 kaynak dosya ya da oluşturulmuş bir dosya olabilir.
Çalışma zamanında gereken diğer tüm dosyalar (komut dosyaları veya veriler) |