depo

Yardımcı işlevler ve özelliklerle ilgili bilgileri içeren depo kuralının bağlamı. Depo kuralı oluşturduğunuzda implementation işlevine bağımsız değişken olarak bir repository_ctx nesnesi iletilir.

Üyeler

özlk

structure repository_ctx.attr

Özelliklerin değerlerine erişmek için kullanılan bir yapı. Değerler kullanıcı tarafından sağlanır (sağlanmazsa varsayılan değer kullanılır).

delete

bool repository_ctx.delete(path)

Bir dosyayı veya dizini siler. Dosyanın veya dizinin bu çağrı tarafından gerçekten silinip silinmediğini belirten bir boole değeri döndürür.

Parametreler

Parametre Açıklama
path string veya path; required
Silinecek dosyanın, depo dizinine göreli veya mutlak yolu. Yol veya dize olabilir.

indir

unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

Belirtilen URL'deki dosyayı çıkış yoluna indirir ve success içeren bir yapı döndürür. Bu yapı, indirme işlemi başarıyla tamamlandıysa true olan bir işarettir. Başarılı olursa sha256 ve integrity alanlarıyla birlikte dosyanın karmasını içerir. sha256 veya integrity kullanıcı tarafından belirtildiğinde açık bir canonical_id ayarlanması önemle tavsiye edilir. Örneğin: get_default_canonical_id

Parametreler

Parametre Açıklama
url dize veya dize yinelemesi; zorunlu
Aynı dosyaya referans veren yansıtma URL'lerinin listesi.
output string; veya Label; veya path; varsayılan değer ''
çıkış dosyasının yolu (depo dizinine göre).
sha256 string; varsayılan değer ''
İndirilen dosyanın beklenen SHA-256 karması. Bu, indirilen dosyanın SHA-256 karmasıyla eşleşmelidir. Uzak dosyalar değişebileceğinden SHA-256'nın atlanması güvenlik riski oluşturur. Bu alanın atlanması en iyi ihtimalle derlemenizin hermetik olmamasına neden olur. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak gönderimden önce ayarlanmalıdır. Sağlanırsa önce verilen karma değerine sahip bir dosya için depo önbelleği kontrol edilir. Yalnızca dosya önbellekte bulunamazsa indirme işlemi denenir. İndirme işlemi başarılı olduktan sonra dosya önbelleğe eklenir.
executable bool; varsayılan değer False
Oluşturulan dosyada yürütülebilir işaretini ayarlayın (varsayılan olarak false).
allow_fail bool; varsayılan değer False
Ayarlanırsa başarısız indirmeler için hata oluşturmak yerine döndürülen değerde hatayı belirtin.
canonical_id string; varsayılan değer ''
Ayarlanırsa önbellek isabetlerini, dosyanın önbelleğe aynı standart kimlikle eklendiği durumlarla sınırlandırın. Varsayılan olarak önbelleğe alma işleminde sağlama toplamı (sha256 veya integrity) kullanılır.
auth dict; varsayılan değer {}
Bazı URL'ler için kimlik doğrulama bilgilerini belirten isteğe bağlı bir sözlük.
headers dict; varsayılan değer {}
Tüm URL'ler için HTTP üst bilgilerini belirten isteğe bağlı bir sözlük.
integrity string; default is ''
İndirilen dosyanın, alt kaynak bütünlüğü biçimindeki beklenen sağlama toplamı. Bu, indirilen dosyanın sağlama toplamıyla eşleşmelidir. Uzak dosyalar değişebileceğinden sağlama toplamını atlamak güvenlik riski oluşturur. Bu alanın atlanması en iyi ihtimalle derlemenizin hermetik olmamasına neden olur. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak gönderimden önce ayarlanmalıdır. Sağlanırsa, önce verilen sağlama toplamına sahip bir dosya için depo önbelleği kontrol edilir. Yalnızca dosya önbellekte bulunamazsa indirme işlemi denenir. İndirme işlemi başarılı olduktan sonra dosya önbelleğe eklenir.
block bool; varsayılan değer True
false olarak ayarlanırsa çağrı hemen döndürülür ve normal dönüş değeri yerine, indirme işlemi tamamlanana kadar engellenen ve normal dönüş değerini döndüren veya her zamanki gibi hata veren tek bir yönteme (wait()) sahip bir jeton döndürülür.

download_and_extract

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

Belirtilen URL için bir dosyayı çıkış yoluna indirir, dosyayı ayıklar ve success içeren bir yapı döndürür. Bu yapı, indirme işlemi başarıyla tamamlandıysa true olan bir işarettir. İndirme işlemi başarılıysa sha256 ve integrity alanlarını içeren dosyanın karmasını döndürür. sha256 veya integrity kullanıcı tarafından belirtildiğinde açık bir canonical_id ayarlanması önemle tavsiye edilir. Örneğin: get_default_canonical_id

Parametreler

Parametre Açıklama
url dize veya dize yinelemesi; zorunlu
Aynı dosyaya referans veren yansıtma URL'lerinin listesi.
output string; veya Label; veya path; varsayılan değer ''
Arşivin açılacağı dizinin yolu (depo dizinine göre).
sha256 string; varsayılan değer ''
İndirilen dosyanın beklenen SHA-256 karması. Bu, indirilen dosyanın SHA-256 karmasıyla eşleşmelidir. Uzak dosyalar değişebileceğinden SHA-256'nın atlanması güvenlik riski oluşturur. Bu alanın atlanması en iyi ihtimalle derlemenizin hermetik olmamasına neden olur. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak gönderimden önce ayarlanmalıdır. Sağlanırsa önce verilen karma değerine sahip bir dosya için depo önbelleği kontrol edilir. Yalnızca dosya önbellekte bulunamazsa indirme işlemi denenir. İndirme işlemi başarılı olduktan sonra dosya önbelleğe eklenir.
type string; varsayılan değer ''
İndirilen dosyanın arşiv türü. Varsayılan olarak, arşiv türü URL'nin dosya uzantısından belirlenir. Dosyanın uzantısı yoksa "zip", "jar", "war", "aar", "nupkg", "whl", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" veya ".deb" uzantılarını açıkça belirtebilirsiniz.
strip_prefix string; varsayılan değer ''
Çıkarılan dosyalardan kaldırılacak bir dizin öneki. Birçok arşiv, arşivdeki tüm dosyaları içeren bir üst düzey dizin içerir. build_file içinde bu öneki tekrar tekrar belirtmek yerine, bu alan çıkarılan dosyalardan öneki kaldırmak için kullanılabilir.

Bu parametre, uyumluluk için kullanımdan kaldırılan stripPrefix adı altında da kullanılabilir.

allow_fail bool; varsayılan değer False
Ayarlanırsa başarısız indirmeler için hata oluşturmak yerine döndürülen değerde hatayı belirtin.
canonical_id string; varsayılan değer ''
Ayarlanırsa önbellek isabetlerini, dosyanın önbelleğe aynı standart kimlikle eklendiği durumlarla sınırlandırın. Varsayılan olarak önbelleğe alma işleminde sağlama toplamı kullanılır (sha256 veya integrity).
auth dict; varsayılan değer {}
Bazı URL'ler için kimlik doğrulama bilgilerini belirten isteğe bağlı bir sözlük.
headers dict; varsayılan değer {}
Tüm URL'ler için HTTP üst bilgilerini belirten isteğe bağlı bir sözlük.
integrity string; default is ''
İndirilen dosyanın, alt kaynak bütünlüğü biçimindeki beklenen sağlama toplamı. Bu, indirilen dosyanın sağlama toplamıyla eşleşmelidir. Uzak dosyalar değişebileceğinden sağlama toplamını atlamak güvenlik riski oluşturur. Bu alanın atlanması en iyi ihtimalle derlemenizin hermetik olmamasına neden olur. Geliştirmeyi kolaylaştırmak için isteğe bağlıdır ancak gönderimden önce ayarlanmalıdır. Sağlanırsa, önce verilen sağlama toplamına sahip bir dosya için depo önbelleği kontrol edilir. Yalnızca dosya önbellekte bulunamazsa indirme işlemi denenir. İndirme işlemi başarılı olduktan sonra dosya önbelleğe eklenir.
rename_files dict; varsayılan değer {}
Ayıklama sırasında yeniden adlandırılacak dosyaları belirten isteğe bağlı bir sözlük. Bir anahtarla tam olarak eşleşen adlara sahip arşiv girişleri, dizin öneki ayarlanmadan önce değer olarak yeniden adlandırılır. Bu seçenek, Unicode olmayan dosya adları içeren veya büyük/küçük harfe duyarsız dosya sistemlerinde aynı yola çıkarılacak dosyalar içeren arşivleri çıkarmak için kullanılabilir.

execute

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

Bağımsız değişkenler listesi tarafından verilen komutu yürütür. Komutun yürütme süresi timeout ile sınırlıdır (saniye cinsinden, varsayılan 600 saniye). Bu yöntem, komutun çıkışını içeren bir exec_result yapısı döndürür. environment haritası, işleme iletilecek bazı ortam değişkenlerini geçersiz kılmak için kullanılabilir.

Parametreler

Parametre Açıklama
arguments sequence; required
Bağımsız değişkenlerin listesi. İlk öğe, yürütülecek programın yolu olmalıdır.
timeout int; varsayılan değer 600
Komutun saniye cinsinden maksimum süresi (varsayılan değer 600 saniyedir).
environment dict; varsayılan değer {}
Bazı ortam değişkenlerinin işleme aktarılmak üzere ayarlanmasını zorlar. Ortam değişkenini kaldırmak için değer None olabilir.
quiet bool; varsayılan değer True
stdout ve stderr'in terminale yazdırılıp yazdırılmayacağı.
working_directory string; varsayılan değer ""
Komut yürütme için çalışma dizini. Depo köküne göre göreceli veya mutlak olabilir. Varsayılan dizin, depo köküdür.

çıkarma

None repository_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')

Bir arşivi depo dizinine çıkarın.

Parametreler

Parametre Açıklama
archive string; veya Label; veya path; required
path to the archive that will be unpacked, relative to the repository directory.
output string; veya Label; veya path; varsayılan değer ''
arşivin açılacağı dizinin yolu (depo dizinine göre).
strip_prefix string; varsayılan değer ''
çıkarılan dosyalardan kaldırılacak bir dizin öneki. Birçok arşiv, arşivdeki tüm dosyaları içeren bir üst düzey dizin içerir. Bu öneki build_file içinde tekrar tekrar belirtmek yerine, bu alan çıkarılan dosyalardan öneki kaldırmak için kullanılabilir.

Bu parametre, uyumluluk için kullanımdan kaldırılan stripPrefix adı altında da kullanılabilir.

rename_files dict; varsayılan değer {}
Ayıklama sırasında yeniden adlandırılacak dosyaları belirten isteğe bağlı bir sözlük. Bir anahtarla tam olarak eşleşen adlara sahip arşiv girişleri, dizin öneki ayarlanmadan önce değer olarak yeniden adlandırılır. Bu seçenek, Unicode olmayan dosya adları içeren veya büyük/küçük harfe duyarsız dosya sistemlerinde aynı yola çıkarılacak dosyalar içeren arşivleri çıkarmak için kullanılabilir.
watch_archive string; varsayılan değer 'auto'
Arşiv dosyasının izlenip izlenmeyeceği. "yes", "no" veya "auto" dizesi olabilir. "yes" değerini iletmek, watch() yöntemini hemen çağırmaya eşdeğerdir; "no" değerini iletmek, dosyayı izlemeye çalışmaz; "auto" değerini iletmek ise dosyayı yalnızca izlemenin yasal olduğu durumlarda izlemeye çalışır (daha fazla bilgi için watch() belgelerine bakın).

dosya

None repository_ctx.file(path, content='', executable=True, legacy_utf8=False)

Depo dizininde, sağlanan içerikle bir dosya oluşturur.

Parametreler

Parametre Açıklama
path string; veya Label; veya path; required
Oluşturulacak dosyanın, depo dizinine göre yolu.
content string; varsayılan değer ''
Oluşturulacak dosyanın içeriği. Varsayılan olarak boştur.
executable bool; varsayılan değer True
Oluşturulan dosyada yürütülebilir işaretini ayarlayın. Varsayılan olarak true değerini alır.
legacy_utf8 bool; varsayılan değer False
İşlem yapılmaz. Bu parametrenin desteği sonlandırılmıştır ve gelecekteki bir Bazel sürümünde kaldırılacaktır.

getenv

string repository_ctx.getenv(name, default=None)

Bir ortam değişkeninin name değerini varsa dize olarak, yoksa default olarak döndürür.

Artımlı olarak oluştururken name ile adlandırılan değişkenin değerinde yapılan herhangi bir değişiklik, bu deponun yeniden getirilmesine neden olur.

Parametreler

Parametre Açıklama
name string; required
Name of desired environment variable.
default dize veya None; varsayılan değer None
name bulunamazsa döndürülecek varsayılan değer.
None tarihine kadar iade edilebilir.

ad

string repository_ctx.name

Bu kural tarafından oluşturulan harici deponun standart adı. Bu adın tüm harici depolarda benzersiz olduğu garanti edilir ancak tam biçimi belirtilmez. Bu depo kuralı oluşturulduğunda name olarak belirtilen adı almak için bunun yerine original_name kullanın.

original_name

string repository_ctx.original_name

Bu depo kuralı oluşturulduğunda name özelliği olarak belirtilen ad. Bu ad, harici depolar arasında benzersiz olmayabilir. Harici deponun standart adını almak için bunun yerine name kullanın.

os

repository_os repository_ctx.os

Sistemdeki bilgilere erişmek için kullanılan bir yapı.

patch

None repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')

Harici deponun kök dizinine bir yama dosyası uygulayın. Yama dosyası, standart bir birleştirilmiş farklılık biçimi dosyası olmalıdır. Bazel'e özgü yama uygulaması, yama komut satırı aracı gibi bulanık eşleşmeyi ve ikili yamayı desteklemez.

Parametreler

Parametre Açıklama
patch_file string; veya Label; veya path; required
Uygulanacak yama dosyası. Etiket, göreli yol veya mutlak yol olabilir. Göreceli bir yol ise depo dizinine çözümlenir.
strip int; varsayılan değer 0
Belirtilen sayıda öndeki bileşeni dosya adlarından kaldırın.
watch_patch string; varsayılan değer 'auto'
Yama dosyasının izlenip izlenmeyeceği. "yes", "no" veya "auto" dizesi olabilir. "yes" değerini iletmek, watch() yöntemini hemen çağırmaya eşdeğerdir; "no" değerini iletmek, dosyayı izlemeye çalışmaz; "auto" değerini iletmek ise dosyayı yalnızca izlemenin yasal olduğu durumlarda izlemeye çalışır (daha fazla bilgi için watch() belgelerine bakın).

yol

path repository_ctx.path(path)

Dize, etiket veya yoldan bir yol döndürür. Bu bağlam bir repository_ctx ise göreli yol, depo dizinine göre çözümlenir. module_ctx ise göreli yol, bu modül uzantısı için geçici bir çalışma dizinine göre çözümlenir. Yol bir etiketse ilgili dosyanın yoluna çözümlenir. Uzak depoların ve modül uzantılarının analiz aşamasında yürütüldüğünü ve bu nedenle bir hedef sonuca bağlı olamayacağını (etiket, oluşturulmamış bir dosyayı işaret etmelidir) unutmayın. Yol bir yolsa bu yolu olduğu gibi döndürür.

Parametreler

Parametre Açıklama
path string; veya Label; veya path; required
string, Label veya path.

okuma

string repository_ctx.read(path, *, watch='auto')

Dosya sistemindeki bir dosyanın içeriğini okur.

Parametreler

Parametre Açıklama
path string; veya Label; veya path; required
Okunacak dosyanın yolu.
watch string; varsayılan değer 'auto'
Dosyanın izlenip izlenmeyeceği. "yes", "no" veya "auto" dizesi olabilir. "yes" değerini iletmek, watch() yöntemini hemen çağırmaya eşdeğerdir; "no" değerini iletmek, dosyayı izlemeye çalışmaz; "auto" değerini iletmek ise dosyayı yalnızca izlemenin yasal olduğu durumlarda izlemeye çalışır (daha fazla bilgi için watch() belgelerine bakın).

adını değiştir

None repository_ctx.rename(src, dst)

Dosyayı veya dizini src olarak yeniden adlandırır.dst Üst dizinler gerektiğinde oluşturulur. Hedef yol zaten varsa işlem başarısız olur. Her iki yol da deponun içinde olmalıdır.

Parametreler

Parametre Açıklama
src string; veya Label; veya path; required
Yeniden adlandırılacak mevcut dosyanın veya dizinin yolu. Bu yol, depo dizinine göre belirlenir.
dst string; veya Label; veya path; required
Dosyanın veya dizinin yeniden adlandırılacağı yeni ad (depo dizinine göre).

repo_metadata

repo_metadata repository_ctx.repo_metadata(*, reproducible=False, attrs_for_reproducibility={})

Depo kuralının uygulama işlevinden döndürülebilen ve yeniden üretilebilirlik hakkında meta veri sağlayan opak bir nesne oluşturur.

Parametreler

Parametre Açıklama
reproducible bool; default is False
Bu depoda yeniden getirmenin tekrarlanabilir olduğunu belirtir. Yani tam olarak aynı giriş özellikleri, depo kuralı tanımı, izlenen dosyalar ve ortam değişkenleriyle vb. başka bir kez getirilirse tam olarak aynı çıkış üretilir. Bu özellik, izlenmeyen diğer koşullar (ör. internetten alınan bilgiler, çalışma alanının kök dizin yolu, rastgele yürütülebilir dosyaların çalıştırılmasından elde edilen çıktı) değişse bile geçerli olmalıdır. True olarak ayarlanırsa getirilen depo içeriklerinin çalışma alanları arasında önbelleğe alınmasına izin verilir.

Bunun True olarak ayarlanmasının, depo içerikleri önbelleğinde önbelleğe almayı garanti etmediğini unutmayın. Örneğin, yerel depo kuralları hiçbir zaman önbelleğe alınmaz.

attrs_for_reproducibility dict; varsayılan değer {}
reproducible False ise bu, Bazel'e orijinal depo kuralının hangi özelliklerinin değiştirilerek yeniden üretilebilir hale getirileceğini söylemek için belirtilebilir.

report_progress

None repository_ctx.report_progress(status='')

Bu depo veya modül uzantısının getirilmesiyle ilgili ilerleme durumunu günceller.

Parametreler

Parametre Açıklama
status string; varsayılan değer ''
string olup getirme ilerleme durumunun mevcut durumunu açıklar.

None repository_ctx.symlink(target, link_name)

Dosya sisteminde sembolik bağlantı oluşturur.

Parametreler

Parametre Açıklama
target string; veya Label; veya path; required
Sembolik bağlantının yönlendirilmesi gereken yol.
string; veya Label; veya path; required
Oluşturulacak sembolik bağlantının yolu.

şablon

None repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')

template kullanarak yeni bir dosya oluşturur. template içinde substitutions anahtarının her tekrarı, ilgili değerle değiştirilir. Sonuç, path dilinde yazılır. Yürütülebilir biti açmak veya kapatmak için isteğe bağlı bir executable bağımsız değişken (varsayılan olarak doğru) ayarlanabilir.

Parametreler

Parametre Açıklama
path string; veya Label; veya path; required
Oluşturulacak dosyanın, depo dizinine göre yolu.
template string; veya Label; veya path; required
Şablon dosyasının yolu.
substitutions dict; varsayılan değer {}
Şablon genişletilirken yapılacak değiştirmeler.
executable bool; varsayılan değer True
Oluşturulan dosyada yürütülebilir işaretini ayarlayın. Varsayılan olarak true değerini alır.
watch_template string; varsayılan değer 'auto'
Şablon dosyasının izlenip izlenmeyeceği. "yes", "no" veya "auto" dizesi olabilir. "yes" değerini iletmek, watch() yöntemini hemen çağırmaya eşdeğerdir; "no" değerini iletmek, dosyayı izlemeye çalışmaz; "auto" değerini iletmek ise dosyayı yalnızca izlemenin yasal olduğu durumlarda izlemeye çalışır (daha fazla bilgi için watch() belgelerine bakın).

kol saati

None repository_ctx.watch(path)

Bazel'e, belirtilen yolda değişiklik olup olmadığını (yolun mevcut olup olmadığı veya dosya ya da dizin olup olmadığı fark etmeksizin) izlemesini söyler. Dosyada veya dizinde yapılan değişiklikler bu depo ya da modül uzantısını geçersiz kılar ve bir sonraki sefer yeniden getirilmesine veya yeniden değerlendirilmesine neden olur.

"Değişiklikler", dosyanın içeriğinde yapılan değişiklikleri (yol bir dosya ise), yolun daha önce dosya olup şimdi dizin olmasını veya tam tersini ve yolun var olmaya başlamasını ya da sonlanmasını içerir. Özellikle, yol bir dizinse bu işlem dizin altındaki dosyalarda yapılan değişiklikleri içermez. Bunun için path.readdir() politikasını kullanın.

Şu anda getirilen depodaki veya mevcut modül uzantısının çalışma dizinindeki yolları izlemeye çalışmanın hataya neden olacağını unutmayın. Mevcut Bazel çalışma alanının dışındaki bir yolu izlemeye çalışan bir modül uzantısı da hatayla sonuçlanır.

Parametreler

Parametre Açıklama
path dize; veya Etiket; veya yol; zorunlu
İzlenecek dosyanın yolu.

watch_tree

None repository_ctx.watch_tree(path)

Bazel'e, belirtilen yolun altında geçişli olarak bulunan tüm dosya veya dizinlerdeki değişiklikleri izlemesini söyler. Dosya içeriklerinde, dosya veya dizinlerin varlığında, dosya adlarında ya da dizin adlarında yapılan değişiklikler bu deponun yeniden getirilmesine neden olur.

Şu anda getirilen depodaki yolları izlemeye çalışmanın hataya neden olacağını unutmayın.

Parametreler

Parametre Açıklama
path string; veya Label; veya path; required
İzlenecek dizin ağacının yolu.

hangi

path repository_ctx.which(program)

İlgili programın path değerini veya yolda böyle bir program yoksa None değerini döndürür.

Parametreler

Parametre Açıklama
program string; required
Program to find in the path.
None tarihine kadar iade edilebilir.

workspace_root

path repository_ctx.workspace_root

Bazel çağrısının kök çalışma alanına giden yol.