ctx.actions
simgesini kullanarak bu modüle erişebilirsiniz.
Üyeler
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- write
args
Args actions.args()Hafıza açısından verimli komut satırı oluşturmak için kullanılabilecek bir Args nesnesi döndürür.
declare_directory
File actions.declare_directory(filename, *, sibling=None)Kuralın veya özelliğin, geçerli pakette belirtilen ada sahip bir dizin oluşturduğunu belirtir. Dizini oluşturan bir işlem oluşturmanız gerekir. Dizinin içeriğine Starlark'tan doğrudan erişilemez ancak
Args.add_all()
ile bir işlem komutunda genişletilebilir.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" belirtilmezse yeni dizinin mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini tanımlar). |
sibling
|
File; or None ;
default = NoneYeni tanımlanan dizinle aynı dizinde bulunan bir dosya. Dosya, mevcut pakette olmalıdır. |
declare_file
File actions.declare_file(filename, *, sibling=None)Kuralın veya özelliğin, belirtilen dosya adıyla bir dosya oluşturduğunu belirtir.
sibling
belirtilmezse dosya adı, paket dizine göreli olur. Aksi takdirde dosya, sibling
ile aynı dizinde olur. Dosyalar mevcut paketin dışında oluşturulamaz.Bir dosyayı beyan etmenin yanı sıra dosyayı yayınlayan bir işlem de ayrı olarak oluşturmanız gerektiğini unutmayın. Bu işlemi oluşturmak için döndürülen File
nesnesini işlemin oluşturma işlevine iletmeniz gerekir.
Önceden tanımlanmış çıkış dosyalarının bu işlev kullanılarak tanımlanması gerekmez (ve tanımlanamaz). Bunun yerine, File
nesnelerini ctx.outputs
adresinden alabilirsiniz. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" sağlanmazsa yeni dosyanın mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini belirler). |
sibling
|
File; or None ;
default = NoneYeni oluşturulan dosyayla aynı dizinde bulunan bir dosya. Dosya, mevcut pakette olmalıdır. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Deneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --experimental_allow_unresolved_symlinks
ayarlanarak deneme amaçlı olarak etkinleştirilebilir.
Kuralın veya özelliğin, geçerli pakette belirtilen adla bir sembolik bağlantı oluşturduğunu belirtir. Bu sembolik bağlantıyı oluşturan bir işlem oluşturmanız gerekir. Bazel bu sembolik bağlantının referansını hiçbir zaman kaldırmaz ve tam olarak korumalı alanlara veya uzaktan yürütücülere aktarır.
Parametreler
Parametre | Açıklama |
---|---|
filename
|
zorunlu "Kardeş" sağlanmazsa yeni sembolik bağlantının mevcut pakete göre yolu. Aksi takdirde, bir dosyanın temel adı ("kardeş" bir dizini tanımlar). |
sibling
|
File; or None ;
default = NoneYeni tanımlanan sembolik bağlantıyla aynı dizinde bulunan bir dosya. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])Ne komut yürüten ne de çıkış oluşturan ancak "ek işlemler" eklemek için yararlı olan boş bir işlem oluşturur.
Parametreler
Parametre | Açıklama |
---|---|
mnemonic
|
required İşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi. |
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)Şablon genişletme işlemi oluşturur. İşlem yürütüldüğünde, şablona dayalı bir dosya oluşturulur. Şablonun bölümleri,
substitutions
sözlüğü kullanılarak, belirtilen sırayla değiştirilir. Sözlüğün bir anahtarı şablonda göründüğünde (veya önceki bir değiştirmenin sonucu olarak) ilişkili değerle değiştirilir. Anahtarlar için özel bir söz dizimi yoktur. Örneğin, çakışmaları önlemek için köşeli parantez kullanabilirsiniz (ör. {KEY}
). Kullanım örneğine bakın.
Parametreler
Parametre | Açıklama |
---|---|
template
|
zorunlu UTF-8 olarak kodlanmış bir metin dosyası olan şablon dosyası. |
output
|
zorunlu UTF-8 olarak kodlanmış bir metin dosyası olan çıkış dosyası. |
substitutions
|
default = {} Şablon genişletilirken yapılacak ikameler. |
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |
computed_substitutions
|
TemplateDict ;
default = unboundDeneysel. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin. --+experimental_lazy_template_expansion Deneme: Şablon genişletilirken yapılacak ikameler ayarını yaparak deneme amaçlı olarak etkinleştirilebilir. |
run
None actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=None)Bir yürütülebilir dosyayı çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
sequence of Files ;
zorunluİşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi veya depset. |
unused_inputs_list
|
File; or None ;
default = Noneİşlem tarafından kullanılmayan girişlerin listesini içeren dosya. Bu dosyanın içeriği (genellikle işlemin çıkışlarından biri), işlem yürütülürken kullanılmayan giriş dosyalarının listesine karşılık gelir. Bu dosyalarda yapılan değişiklikler, işlemin çıktılarını hiçbir şekilde etkilememelidir. |
executable
|
File; or string; or FilesToRunProvider ;
requiredİşlem tarafından çağrılacak yürütülebilir dosya. |
tools
|
sequence; or depset ;
default = unboundİşlemin ihtiyaç duyduğu tüm araçların listesi veya depset. Araçlar, işleme otomatik olarak sunulan ek çalıştırma dosyalarına sahip girişlerdir. Sağlanan liste, heterojen bir dosya koleksiyonu, FilesToRunProvider örnekleri veya dosya depsetleri olabilir. Doğrudan listede bulunan ve ctx.executable kaynağından gelen dosyaların çalıştırma dosyaları otomatik olarak eklenir. Sağlanan depset yalnızca Dosya içermelidir. Her iki durumda da, depset'lerdeki dosyalar, çalışma dosyaları için ctx.executable ile çapraz referans oluşturmaz. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dizelerin veya actions.args() nesnelerinin listesi olmalıdır.
|
mnemonic
|
string; or None ;
default = Noneİşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
progress_message
|
string; or None ;
default = NoneDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.o oluşturmak için foo.cc derleniyor"). İleti, sırasıyla etiket dizesi, ilk giriş veya çıkışın yoluyla değiştirilen %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler yerine daha verimli olan kalıpları tercih edin.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
default = NoneOrtam değişkenleri sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
default = Noneİşlemi planlamayla ilgili bilgiler. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
default = None(Deneysel) giriş çalışma dosyası meta verilerini ayarlar; bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Noneİşlemi, belirtilen yürütme grubunun yürütme platformunda çalıştırır. Hiçbiri belirtilmezse hedefin varsayılan yürütme platformu kullanılır. |
shadowed_action
|
Action ;
default = Noneİşlemi, belirtilen gölgelenen işlemin girişlerini ve işlemin girişler listesine ve ortamına eklenen ortamı kullanarak çalıştırır. İşlem ortamı, gölgelenen işlemin ortam değişkenlerinin herhangi birinin üzerine yazabilir. Aksi takdirde yalnızca işlemin girişlerini ve belirtilen ortamı kullanır. |
resource_set
|
callable; or None ;
varsayılan = YokBu işlem yerel olarak çalıştırılırsa yürütme sırasında kaynak kullanımını tahmin etmek için kullanılan, kaynak kümesi sözlüğü döndüren bir geri çağırma işlevi. İşlev iki konumsal bağımsız değişkeni kabul eder: işletim sistemi adını temsil eden bir dize (ör. "osx") ve işleme verilen girişlerin sayısını temsil eden bir tam sayı. Döndürülen sözlük, her biri float veya int türünde olabilecek aşağıdaki girişleri içerebilir:
Bu parametre Geri çağırma üst düzey olmalıdır (lambda ve iç içe işlevlere izin verilmez). |
toolchain
|
Label; or string; or None ;
default = NoneBu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülmesi için parametre ayarlanmalıdır. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında ayarlanmasını öneririz. Bu işlemi oluşturan kuralın, "rule()" işlevinde bu araç zincirini tanımlaması gerektiğini unutmayın. Hem "toolchain" hem de "exec_group" parametreleri ayarlandığında "exec_group" kullanılır. "exec_group" aynısını belirtmezse hata oluşur. |
run_shell
None actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=None)Kabuk komutu çalıştıran bir işlem oluşturur. Kullanım örneğini inceleyin.
Parametreler
Parametre | Açıklama |
---|---|
outputs
|
sequence of Files ;
zorunluİşlemin çıkış dosyalarının listesi. |
inputs
|
sequence of Files; or depset ;
default = []İşlemin giriş dosyalarının listesi veya depset. |
tools
|
sequence of Files; or depset ;
default = unboundİşlemin ihtiyaç duyduğu tüm araçların listesi veya depset. Araçlar, işleme otomatik olarak sunulan ek çalıştırma dosyalarına sahip girişlerdir. Liste, Files veya FilesToRunProvider örnekleri içerebilir. |
arguments
|
sequence ;
default = []İşlemin komut satırı bağımsız değişkenleri. Dizelerin veya actions.args() nesnelerinin listesi olmalıdır.Bazel, bu özellikteki öğeleri komuta bağımsız değişken olarak iletir.Komut,
|
mnemonic
|
string; or None ;
default = Noneİşlemin tek kelimelik açıklaması (ör. CppCompile veya GoLink). |
command
|
string; or sequence of strings ;
requiredYürütülecek kabuk komutu. Bu, bir dize (tercih edilir) veya dize dizisi (kullanımdan kaldırılmıştır) olabilir.
(Desteği sonlandırıldı) Bazel, komutu yürütmek için genrules ile aynı kabuğu kullanır. |
progress_message
|
string; or None ;
default = NoneDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı (ör. "foo.o oluşturmak için foo.cc derleniyor"). İleti, sırasıyla etiket dizesi, ilk giriş veya çıkışın yoluyla değiştirilen %{label} , %{input} veya %{output} kalıpları içerebilir. Statik dizeler yerine daha verimli olan kalıpları tercih edin.
|
use_default_shell_env
|
default = False İşlemin yerleşik kabuk ortamını kullanıp kullanmayacağı. |
env
|
dict; or None ;
default = NoneOrtam değişkenleri sözlüğünü ayarlar. |
execution_requirements
|
dict; or None ;
default = Noneİşlemi planlamayla ilgili bilgiler. Faydalı anahtarlar için etiketlere bakın. |
input_manifests
|
sequence; or None ;
default = None(Deneysel) giriş çalışma dosyası meta verilerini ayarlar; bunlar genellikle resolve_command tarafından oluşturulur. |
exec_group
|
string; or None ;
default = Noneİşlemi, belirtilen yürütme grubunun yürütme platformunda çalıştırır. Hiçbiri belirtilmezse hedefin varsayılan yürütme platformu kullanılır. |
shadowed_action
|
Action ;
default = Noneİşlemi, gölgelenen işlemin giriş listesine eklenen keşfedilen girişlerini kullanarak çalıştırır. Aksi takdirde yalnızca işlemin girişlerini kullanır. |
resource_set
|
callable; or None ;
default = NoneYerel olarak çalıştırıldığında kaynak kullanımını tahmin etmek için bir geri çağırma işlevi. ctx.actions.run() adresine göz atın.
|
toolchain
|
Label; or string; or None ;
default = NoneBu işlemde kullanılan yürütülebilir dosyanın veya araçların araç zinciri türü. İşlemin doğru yürütme platformunda yürütülmesi için parametre ayarlanmalıdır. Şu anda herhangi bir işlem yapmaz ancak gelecekteki Bazel sürümlerinde gerekli olacağından bir araç zinciri kullanıldığında ayarlanmasını öneririz. Bu işlemi oluşturan kuralın, "rule()" işlevinde bu araç zincirini tanımlaması gerektiğini unutmayın. Hem "toolchain" hem de "exec_group" parametreleri ayarlandığında "exec_group" kullanılır. "exec_group" aynı araç setini belirtmezse hata oluşur. |
sembolik bağlantı
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)Dosya sistemine sembolik bağlantı yazan bir işlem oluşturur.
Bu işlev, target_file
veya target_path
özelliklerinden tam olarak biri belirtilmiş şekilde çağrılmalıdır.
target_file
kullanırken output
'u declare_file()
veya declare_directory()
ile tanımlayın ve target_file
türünü eşleyin. Bu işlem, sembolik bağlantının target_file
'e işaret etmesini sağlar. Bazel, sembolik bağlantının hedefi veya içeriği değiştiğinde bu işlemin çıktısını geçersiz kılar.
Aksi takdirde, target_path
kullanırken output
'ü declare_symlink()
ile tanımlayın. Bu durumda, sembolik bağlantı target_path
'ü işaret eder. Bazel, sembolik bağlantıyı hiçbir zaman çözmez ve bu işlemin çıkışı yalnızca sembolik bağlantının metin içeriği (yani readlink()
değeri) değiştiğinde geçersiz kılınır. Özellikle, boş bir sembolik bağlantı oluşturmak için kullanılabilir.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Bu işlemin çıkışı. |
target_file
|
File; or None ;
default = NoneÇıkış sembolik bağlantısının işaret edeceği dosya. |
target_path
|
string; or None ;
default = None(Deneysel) Çıkış sembolik bağlantısının işaret edeceği tam yol. Normalleştirme veya başka bir işlem uygulanmaz. Bu özelliğe erişmek için --experimental_allow_unresolved_symlinks ayarının yapılması gerekir.
|
is_executable
|
default = False Yalnızca target_file ile kullanılabilir, target_path ile kullanılamaz. Doğru ise işlem yürütüldüğünde target_file 'nin yürütülebilir olup olmadığını doğrulamak için yolu kontrol edilir ve yürütülebilir değilse hata bildirilir. is_executable değerinin False olarak ayarlanması, hedefin yürütülemeyeceği anlamına gelmez. Yalnızca doğrulama yapılmadığı anlamına gelir.Yapım sırasında boş sembolik bağlantılar bulunmayabileceği için bu özellik |
progress_message
|
string; or None ;
default = NoneDerleme sırasında kullanıcıya gösterilecek ilerleme mesajı. |
template_dict
TemplateDict actions.template_dict()Deneysel. Bu API deneme aşamasındadır ve herhangi bir zamanda değişebilir. Lütfen bu yönteme güvenmeyin.
--+experimental_lazy_template_expansion
Deneysel: Hafıza açısından verimli şablon genişletmesi için bir TemplateDict nesnesi döndürür.
write
None actions.write(output, content, is_executable=False)Dosya yazma işlemi oluşturur. İşlem yürütüldüğünde, belirtilen içerik bir dosyaya yazılır. Bu, analiz aşamasında bulunan bilgileri kullanarak dosya oluşturmak için kullanılır. Dosya büyükse ve çok fazla statik içerik içeriyorsa
expand_template
kullanmayı düşünebilirsiniz.
Parametreler
Parametre | Açıklama |
---|---|
output
|
required Çıkış dosyası. |
content
|
string; or Args ;
zorunludosya içeriği. Dize veya actions.args() nesnesi olabilir.
|
is_executable
|
default = False Çıkış dosyasının yürütülebilir olup olmayacağı. |