रिपॉज़िटरी_टैब

यह रिपॉज़िटरी के उस नियम का कॉन्टेक्स्ट है जिसमें हेल्पर फ़ंक्शन और एट्रिब्यूट के बारे में जानकारी शामिल होती है. रिपॉज़िटरी का नियम बनाते समय, आपको implementation फ़ंक्शन के लिए repository_ctx ऑब्जेक्ट मिलता है.

सदस्य

attr

structure repository_ctx.attr

एट्रिब्यूट की वैल्यू ऐक्सेस करने के लिए एक स्ट्रक्चर. ये वैल्यू उपयोगकर्ता देता है. अगर उपयोगकर्ता वैल्यू नहीं देता है, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.

मिटाएं

bool repository_ctx.delete(path)

किसी फ़ाइल या डायरेक्ट्री को मिटाता है. यह एक बूलियन वैल्यू दिखाता है. इससे पता चलता है कि इस कॉल से फ़ाइल या डायरेक्ट्री को मिटाया गया है या नहीं.

पैरामीटर

पैरामीटर ब्यौरा
path string; या path; required
मिटाई जाने वाली फ़ाइल का पाथ. यह रिपॉज़िटरी डायरेक्ट्री के हिसाब से रेलेटिव या ऐब्सलूट हो सकता है. यह पाथ या स्ट्रिंग हो सकता है.

डाउनलोड करें

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

यह फ़ंक्शन, दिए गए यूआरएल के लिए फ़ाइल को आउटपुट पाथ पर डाउनलोड करता है. साथ ही, एक स्ट्रक्चर दिखाता है, जिसमें success शामिल होता है. यह एक फ़्लैग है. अगर डाउनलोड पूरा हो जाता है, तो इसकी वैल्यू true होती है. अगर डाउनलोड पूरा हो जाता है, तो यह फ़ाइल का हैश दिखाता है. इसमें sha256 और integrity फ़ील्ड होते हैं. जब sha256 या integrity को उपयोगकर्ता ने तय किया हो, तब canonical_id को साफ़ तौर पर सेट करने का सुझाव दिया जाता है. उदाहरण के लिए, get_default_canonical_id

पैरामीटर

पैरामीटर ब्यौरा
url string; or Iterable of strings; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट रूप से ''
होता है यह आउटपुट फ़ाइल का पाथ होता है, जो रिपॉज़िटरी डायरेक्ट्री के हिसाब से होता है.
sha256 string; डिफ़ॉल्ट तौर पर ''
होता है डाउनलोड की गई फ़ाइल का SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदली जा सकती हैं. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है. अगर हैश दिया गया है, तो रिपॉज़िटरी की कैश मेमोरी में दिए गए हैश वाली फ़ाइल की जांच की जाएगी. फ़ाइल को सिर्फ़ तब डाउनलोड करने की कोशिश की जाएगी, जब वह कैश मेमोरी में न मिले. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
executable bool; डिफ़ॉल्ट तौर पर False
है यह बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करता है. डिफ़ॉल्ट रूप से, यह फ़्लैग 'गलत' पर सेट होता है.
allow_fail bool; डिफ़ॉल्ट वैल्यू False
है अगर यह विकल्प सेट किया जाता है, तो डाउनलोड पूरा न होने पर गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी दिखाई जाती है.
canonical_id string; डिफ़ॉल्ट वैल्यू ''
है अगर इसे सेट किया जाता है, तो कैश मेमोरी से फ़ाइलें सिर्फ़ उन मामलों में मिलेंगी जहां फ़ाइल को एक ही कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था. डिफ़ॉल्ट रूप से, कैश मेमोरी में सेव करने के लिए चेकसम (sha256 या integrity) का इस्तेमाल किया जाता है.
auth dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है.
headers dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक ऐसी डिक्शनरी है जिसमें सभी यूआरएल के लिए एचटीटीपी हेडर की जानकारी दी जाती है. हालांकि, इसे शामिल करना ज़रूरी नहीं है.
integrity string; डिफ़ॉल्ट वैल्यू ''
होती है डाउनलोड की गई फ़ाइल का अनुमानित चेकसम, सबरीसोर्स इंटिग्रिटी फ़ॉर्मैट में. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलों में बदलाव किया जा सकता है. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है. अगर चेकसम दिया गया है, तो रिपॉज़िटरी कैश में दिए गए चेकसम वाली फ़ाइल की जांच की जाएगी. फ़ाइल न मिलने पर ही डाउनलोड करने की कोशिश की जाएगी. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
block bool; default is True
If set to false, the call returns immediately and instead of the regular return value, it returns a token with one single method, wait(), which blocks until the download is finished and returns the usual return value or throws as usual.

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={})

यह फ़ंक्शन, दिए गए यूआरएल के लिए आउटपुट पाथ पर एक फ़ाइल डाउनलोड करता है. इसके बाद, उसे एक्सट्रैक्ट करता है. साथ ही, एक स्ट्रक्चर दिखाता है. इसमें success शामिल होता है. यह एक फ़्लैग है. अगर डाउनलोड पूरा हो जाता है, तो इसकी वैल्यू true होती है. अगर डाउनलोड पूरा हो जाता है, तो यह फ़ाइल का हैश दिखाता है. इसमें sha256 और integrity फ़ील्ड होते हैं. जब sha256 या integrity को उपयोगकर्ता ने तय किया हो, तब canonical_id को साफ़ तौर पर सेट करने का सुझाव दिया जाता है. उदाहरण के लिए, get_default_canonical_id

पैरामीटर

पैरामीटर ब्यौरा
url string; or Iterable of strings; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट तौर पर ''
होता है यह उस डायरेक्ट्री का पाथ होता है जहां संग्रह को अनपैक किया जाएगा. यह पाथ, डेटाबेस डायरेक्ट्री के हिसाब से होता है.
sha256 string; डिफ़ॉल्ट तौर पर ''
होता है डाउनलोड की गई फ़ाइल का SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदली जा सकती हैं. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है. अगर हैश दिया गया है, तो रिपॉज़िटरी की कैश मेमोरी में दिए गए हैश वाली फ़ाइल की जांच की जाएगी. फ़ाइल को सिर्फ़ तब डाउनलोड करने की कोशिश की जाएगी, जब वह कैश मेमोरी में न मिले. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
type string; डिफ़ॉल्ट तौर पर ''
होता है डाउनलोड की गई फ़ाइल का संग्रह टाइप. डिफ़ॉल्ट रूप से, संग्रह के टाइप का पता यूआरएल के फ़ाइल एक्सटेंशन से चलता है. अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो यहां "zip", "jar", "war", "aar", "nupkg", "whl", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" या ".deb" में से कोई एक एक्सटेंशन साफ़ तौर पर बताया जा सकता है.
strip_prefix string; डिफ़ॉल्ट तौर पर ''
होता है यह एक्सट्रैक्ट की गई फ़ाइलों से हटाने के लिए डायरेक्ट्री का प्रीफ़िक्स होता है. कई संग्रहों में टॉप-लेवल डायरेक्ट्री होती है. इसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार तय करने के बजाय, इस फ़ील्ड का इस्तेमाल करके इसे निकाली गई फ़ाइलों से हटाया जा सकता है.

यह पैरामीटर, stripPrefix के तौर पर भी इस्तेमाल किया जा सकता है.

allow_fail bool; डिफ़ॉल्ट वैल्यू False
है अगर यह विकल्प सेट किया जाता है, तो डाउनलोड पूरा न होने पर गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी दिखाई जाती है.
canonical_id string; डिफ़ॉल्ट वैल्यू ''
है अगर इसे सेट किया जाता है, तो कैश मेमोरी से फ़ाइलें सिर्फ़ उन मामलों में मिलेंगी जहां फ़ाइल को एक ही कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था. डिफ़ॉल्ट रूप से, कैश मेमोरी में सेव करने के लिए चेकसम (sha256 या integrity) का इस्तेमाल किया जाता है.
auth dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है.
headers dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक ऐसी डिक्शनरी है जिसमें सभी यूआरएल के लिए एचटीटीपी हेडर की जानकारी दी जाती है. हालांकि, इसे शामिल करना ज़रूरी नहीं है.
integrity string; डिफ़ॉल्ट वैल्यू ''
होती है डाउनलोड की गई फ़ाइल का अनुमानित चेकसम, सबरीसोर्स इंटिग्रिटी फ़ॉर्मैट में. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलों में बदलाव किया जा सकता है. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है. अगर चेकसम दिया गया है, तो रिपॉज़िटरी कैश में दिए गए चेकसम वाली फ़ाइल की जांच की जाएगी. फ़ाइल न मिलने पर ही डाउनलोड करने की कोशिश की जाएगी. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
rename_files dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें उन फ़ाइलों के बारे में बताया जाता है जिनका नाम एक्सट्रैक्शन के दौरान बदलना है. जिन एंट्री के नाम किसी कुंजी से पूरी तरह मेल खाते हैं उन्हें वैल्यू के हिसाब से नाम दिया जाएगा. ऐसा डायरेक्ट्री के प्रीफ़िक्स में किसी भी तरह का बदलाव करने से पहले किया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें नॉन-यूनिकोड फ़ाइलनेम होते हैं या जिनमें ऐसी फ़ाइलें होती हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ पर एक्सट्रैक्ट होती हैं.

लागू करना

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

यह आर्ग्युमेंट की सूची में दिए गए निर्देश को लागू करता है. कमांड को पूरा करने में लगने वाला समय, timeout सेकंड से ज़्यादा नहीं होना चाहिए. डिफ़ॉल्ट रूप से यह 600 सेकंड होता है. यह तरीका, exec_result स्ट्रक्चर दिखाता है. इसमें कमांड का आउटपुट होता है. environment मैप का इस्तेमाल, प्रोसेस में पास किए जाने वाले कुछ एनवायरमेंट वैरिएबल को बदलने के लिए किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
arguments sequence; ज़रूरी है
आर्ग्युमेंट की सूची. पहला एलिमेंट, एक्ज़ीक्यूट किए जाने वाले प्रोग्राम का पाथ होना चाहिए.
timeout int; default is 600
कमांड की ज़्यादा से ज़्यादा अवधि, सेकंड में (डिफ़ॉल्ट रूप से 600 सेकंड).
environment dict; डिफ़ॉल्ट रूप से {}
होता है कुछ एनवायरमेंट वैरिएबल को प्रोसेस में पास करने के लिए सेट करें. एनवायरमेंट वैरिएबल हटाने के लिए, वैल्यू को None पर सेट किया जा सकता है.
quiet bool; डिफ़ॉल्ट रूप से True
होता है अगर stdout और stderr को टर्मिनल पर प्रिंट किया जाना चाहिए.
working_directory string; डिफ़ॉल्ट तौर पर ""
होता है कमांड को लागू करने के लिए वर्किंग डायरेक्ट्री. यह रिपॉज़िटरी के रूट के हिसाब से या पूरी तरह से अलग हो सकता है. डिफ़ॉल्ट रूप से, यह रिपॉज़िटरी का रूट होता है.

एक्सट्रैक्ट करें

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

किसी संग्रह को रिपॉज़िटरी डायरेक्ट्री में निकालें.

पैरामीटर

पैरामीटर ब्यौरा
archive string; या Label; या path; required
संग्रहित किए गए उस फ़ोल्डर का पाथ जिसे अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री के हिसाब से तय किया जाता है.
output string; या Label; या path; डिफ़ॉल्ट तौर पर ''
होता है यह उस डायरेक्ट्री का पाथ होता है जहां संग्रह को अनपैक किया जाएगा. यह पाथ, डेटाबेस डायरेक्ट्री के हिसाब से होता है.
strip_prefix string; डिफ़ॉल्ट तौर पर ''
होता है यह डायरेक्ट्री का ऐसा प्रीफ़िक्स होता है जिसे निकाली गई फ़ाइलों से हटा दिया जाता है. कई संग्रहों में टॉप-लेवल डायरेक्ट्री होती है. इसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार तय करने के बजाय, इस फ़ील्ड का इस्तेमाल करके इसे निकाली गई फ़ाइलों से हटाया जा सकता है.

यह पैरामीटर, stripPrefix के तौर पर भी इस्तेमाल किया जा सकता है.

rename_files dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें उन फ़ाइलों के बारे में बताया जाता है जिनका नाम एक्सट्रैक्शन के दौरान बदलना है. जिन एंट्री के नाम किसी कुंजी से पूरी तरह मेल खाते हैं उन्हें वैल्यू के हिसाब से नाम दिया जाएगा. ऐसा डायरेक्ट्री के प्रीफ़िक्स में किसी भी तरह का बदलाव करने से पहले किया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें नॉन-यूनिकोड फ़ाइलनेम होते हैं या जिनमें ऐसी फ़ाइलें होती हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ पर एक्सट्रैक्ट होती हैं.
watch_archive string; डिफ़ॉल्ट रूप से 'auto'
होता है संग्रहित की गई फ़ाइल को वॉच करना है या नहीं. यह स्ट्रिंग 'yes', 'no' या 'auto' हो सकती है. 'yes' पास करने का मतलब है कि watch() तरीके को तुरंत लागू करना; 'no' पास करने का मतलब है कि फ़ाइल को देखने की कोशिश नहीं की जाएगी; 'auto' पास करने का मतलब है कि फ़ाइल को सिर्फ़ तब देखने की कोशिश की जाएगी, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.

फ़ाइल

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

यह कमांड, रिपॉज़िटरी डायरेक्ट्री में दिए गए कॉन्टेंट के साथ एक फ़ाइल जनरेट करती है.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; required
रिपॉज़िटरी डायरेक्ट्री के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ.
content string; डिफ़ॉल्ट तौर पर ''
होता है बनाई जाने वाली फ़ाइल का कॉन्टेंट. डिफ़ॉल्ट रूप से यह खाली होता है.
executable bool; डिफ़ॉल्ट तौर पर True
है बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है.
legacy_utf8 bool; डिफ़ॉल्ट रूप से False
होता है कोई कार्रवाई नहीं. यह पैरामीटर अब काम नहीं करता. इसे Bazel के आने वाले वर्शन में हटा दिया जाएगा.

getenv

string repository_ctx.getenv(name, default=None)

अगर एनवायरमेंट वैरिएबल name मौजूद है, तो यह फ़ंक्शन उसकी वैल्यू को स्ट्रिंग के तौर पर दिखाता है. अगर यह मौजूद नहीं है, तो default दिखाता है.

इंक्रीमेंटल बिल्ड के दौरान, name नाम वाले वैरिएबल की वैल्यू में कोई भी बदलाव होने पर, इस डेटाबेस को फिर से फ़ेच किया जाएगा.

पैरामीटर

पैरामीटर ब्यौरा
name string; ज़रूरी है
ज़रूरत के हिसाब से एनवायरमेंट वैरिएबल का नाम.
default string; या None; डिफ़ॉल्ट वैल्यू None
होती है अगर name नहीं मिलता है, तो डिफ़ॉल्ट वैल्यू दिखती है.
इसमें None मिल सकता है.

नाम

string repository_ctx.name

इस नियम से बनाई गई बाहरी रिपॉज़िटरी का कैननिकल नाम. इस नाम के यूनीक होने की गारंटी है. हालांकि, इसका सटीक फ़ॉर्मैट नहीं बताया गया है. इस रिपॉज़िटरी के नियम को इंस्टैंटिएट करते समय, name के तौर पर तय किए गए नाम को पाने के लिए, original_name का इस्तेमाल करें.

original_name

string repository_ctx.original_name

वह नाम जो इस रिपॉज़िटरी के नियम को इंस्टैंटिएट करते समय, name एट्रिब्यूट के तौर पर तय किया गया था. यह ज़रूरी नहीं है कि बाहरी रिपॉज़िटरी में यह नाम यूनीक हो. बाहरी रिपॉज़िटरी का कैननिकल नाम पाने के लिए, name का इस्तेमाल करें.

os

repository_os repository_ctx.os

सिस्टम से जानकारी ऐक्सेस करने के लिए एक स्ट्रक्चर.

पैच

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

बाहरी रिपॉज़िटरी की रूट डायरेक्ट्री में पैच फ़ाइल लागू करें. पैच फ़ाइल, स्टैंडर्ड यूनीफ़ाइड डिफ़ फ़ॉर्मैट वाली फ़ाइल होनी चाहिए. Bazel-native पैच लागू करने की सुविधा, पैच कमांड लाइन टूल की तरह फ़ज़ मैच और बाइनरी पैच का इस्तेमाल नहीं करती.

पैरामीटर

पैरामीटर ब्यौरा
patch_file string; या Label; या path; required
लागू करने के लिए पैच फ़ाइल. यह लेबल, रिलेटिव पाथ या ऐब्सलूट पाथ हो सकता है. अगर यह रिलेटिव पाथ है, तो यह रिपॉज़िटरी डायरेक्ट्री में बदल जाएगा.
strip int; डिफ़ॉल्ट रूप से 0
होता है फ़ाइल के नामों से, शुरू के कॉम्पोनेंट की तय की गई संख्या को हटाता है.
watch_patch string; डिफ़ॉल्ट रूप से 'auto'
होता है पैच फ़ाइल को वॉच करना है या नहीं. यह स्ट्रिंग 'yes', 'no' या 'auto' हो सकती है. 'yes' पास करने का मतलब है कि watch() तरीके को तुरंत लागू करना; 'no' पास करने का मतलब है कि फ़ाइल को देखने की कोशिश नहीं की जाएगी; 'auto' पास करने का मतलब है कि फ़ाइल को सिर्फ़ तब देखने की कोशिश की जाएगी, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.

पाथ

path repository_ctx.path(path)

यह फ़ंक्शन, स्ट्रिंग, लेबल या पाथ से पाथ दिखाता है. अगर यह कॉन्टेक्स्ट repository_ctx है, तो रिलेटिव पाथ को रिपॉज़िटरी डायरेक्ट्री के हिसाब से देखा जाएगा. अगर यह module_ctx है, तो रिलेटिव पाथ को इस मॉड्यूल एक्सटेंशन के लिए, कुछ समय के लिए काम करने वाली डायरेक्ट्री के हिसाब से देखा जाएगा. अगर पाथ कोई लेबल है, तो यह उससे जुड़ी फ़ाइल के पाथ पर रीडायरेक्ट हो जाएगा. ध्यान दें कि रिमोट रिपॉज़िटरी और मॉड्यूल एक्सटेंशन, विश्लेषण के दौरान लागू किए जाते हैं. इसलिए, ये टारगेट के नतीजे पर निर्भर नहीं हो सकते. लेबल को ऐसी फ़ाइल की ओर ले जाना चाहिए जिसे जनरेट न किया गया हो. अगर पाथ कोई पाथ है, तो यह उस पाथ को वैसे ही दिखाएगा.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
string, Label या path, जिससे पाथ बनाया जाना है.

पढ़ा गया

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

यह अनुमति मिलने पर, फ़ाइल सिस्टम में मौजूद किसी फ़ाइल के कॉन्टेंट को पढ़ा जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
उस फ़ाइल का पाथ जिससे डेटा पढ़ना है.
watch string; डिफ़ॉल्ट रूप से 'auto'
होता है फ़ाइल को वॉच करना है या नहीं. यह स्ट्रिंग 'yes', 'no' या 'auto' हो सकती है. 'yes' पास करने का मतलब है कि watch() तरीके को तुरंत लागू करना; 'no' पास करने का मतलब है कि फ़ाइल को देखने की कोशिश नहीं की जाएगी; 'auto' पास करने का मतलब है कि फ़ाइल को सिर्फ़ तब देखने की कोशिश की जाएगी, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.

नाम बदलें

None repository_ctx.rename(src, dst)

इस कमांड से, फ़ाइल या डायरेक्ट्री का नाम src से बदलकर dst कर दिया जाता है. ज़रूरत के हिसाब से पैरंट डायरेक्ट्री बनाई जाती हैं. अगर डेस्टिनेशन पाथ पहले से मौजूद है, तो यह फ़ेल हो जाता है. दोनों पाथ, रिपॉज़िटरी में मौजूद होने चाहिए.

पैरामीटर

पैरामीटर ब्यौरा
src string; या Label; या path; required
यह उस मौजूदा फ़ाइल या डायरेक्ट्री का पाथ होता है जिसका नाम बदलना है. यह पाथ, रिपॉज़िटरी डायरेक्ट्री के हिसाब से होता है.
dst string; या Label; या path; required
वह नया नाम जिससे फ़ाइल या डायरेक्ट्री का नाम बदला जाएगा. यह नाम, रिपॉज़िटरी डायरेक्ट्री के हिसाब से होना चाहिए.

repo_metadata

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

यह एक ओपेक ऑब्जेक्ट बनाता है. इसे repo नियम के लागू करने वाले फ़ंक्शन से वापस लाया जा सकता है, ताकि इसके फिर से बनाए जाने के बारे में मेटाडेटा दिया जा सके.

पैरामीटर

पैरामीटर ब्यौरा
reproducible bool; डिफ़ॉल्ट तौर पर False
होता है इससे पता चलता है कि इस रेपो को फिर से फ़ेच किया जा सकता है. इसका मतलब है कि अगर इसे ठीक उसी इनपुट एट्रिब्यूट, रेपो नियम की परिभाषा, मॉनिटर की गई फ़ाइलों, और एनवायरमेंट वैरिएबल वगैरह के साथ फिर से फ़ेच किया जाता है, तो ठीक वैसा ही आउटपुट मिलेगा. यह प्रॉपर्टी तब भी काम करनी चाहिए, जब ट्रैक न की गई अन्य स्थितियां बदल जाएं. जैसे, इंटरनेट से मिली जानकारी, वर्कस्पेस रूट का पाथ, मनमुताबिक एक्ज़ीक्यूटेबल चलाने से मिला आउटपुट वगैरह. अगर इसे True पर सेट किया जाता है, तो फ़ेच किए गए रेपो कॉन्टेंट को सभी वर्कस्पेस में कैश मेमोरी में सेव किया जा सकता है.

ध्यान दें कि इस विकल्प को 'सही' पर सेट करने से, यह गारंटी नहीं मिलती कि रिपॉज़िटरी के कॉन्टेंट की कैश मेमोरी में कैशिंग होगी. उदाहरण के लिए, स्थानीय रिपॉज़िटरी के नियमों को कभी भी कैश नहीं किया जाता.

attrs_for_reproducibility dict; डिफ़ॉल्ट तौर पर {}
होता है अगर reproducible की वैल्यू False है, तो इसे सेट किया जा सकता है. इससे Bazel को यह पता चलता है कि ओरिजनल repo नियम के किन एट्रिब्यूट में बदलाव करना है, ताकि इसे फिर से बनाया जा सके.

report_progress

None repository_ctx.report_progress(status='')

यह कुकी, इस रिपॉज़िटरी या मॉड्यूल एक्सटेंशन को फ़ेच करने की प्रोसेस का स्टेटस अपडेट करती है.

पैरामीटर

पैरामीटर ब्यौरा
status string; डिफ़ॉल्ट तौर पर ''
होता है string फ़ेच करने की प्रोसेस के मौजूदा स्टेटस के बारे में बताता है.

None repository_ctx.symlink(target, link_name)

यह फ़ाइल सिस्टम पर एक सिमलिंक बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
target string; या Label; या path; ज़रूरी है
वह पाथ जिस पर सिमलंक को पॉइंट करना चाहिए.
string; या Label; या path; required
सिमलिंक बनाने का पाथ.

टेंप्लेट

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

template का इस्तेमाल करके, नई फ़ाइल जनरेट करता है. template में मौजूद substitutions की हर कुंजी को उसकी वैल्यू से बदल दिया जाएगा. नतीजा path में लिखा गया है. executable आर्ग्युमेंट (डिफ़ॉल्ट रूप से सही पर सेट होता है) को सेट करके, एक्ज़ीक्यूटेबल बिट को चालू या बंद किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; required
रिपॉज़िटरी डायरेक्ट्री के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ.
template string; या Label; या path; ज़रूरी है
टेंप्लेट फ़ाइल का पाथ.
substitutions dict; डिफ़ॉल्ट रूप से {}
होता है टेंप्लेट को बड़ा करते समय किए जाने वाले बदलाव.
executable bool; डिफ़ॉल्ट तौर पर True
है बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है.
watch_template string; डिफ़ॉल्ट तौर पर 'auto'
होता है टेम्पलेट फ़ाइल को वॉच करना है या नहीं. यह स्ट्रिंग 'yes', 'no' या 'auto' हो सकती है. 'yes' पास करने का मतलब है कि watch() तरीके को तुरंत लागू करना; 'no' पास करने का मतलब है कि फ़ाइल को देखने की कोशिश नहीं की जाएगी; 'auto' पास करने का मतलब है कि फ़ाइल को सिर्फ़ तब देखने की कोशिश की जाएगी, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.

देखें

None repository_ctx.watch(path)

यह Bazel को दिए गए पाथ में होने वाले बदलावों पर नज़र रखने के लिए कहता है. भले ही, वह पाथ मौजूद हो या न हो या वह फ़ाइल हो या डायरेक्ट्री. फ़ाइल या डायरेक्ट्री में कोई भी बदलाव करने पर, यह रिपॉज़िटरी या मॉड्यूल एक्सटेंशन अमान्य हो जाएगा. साथ ही, अगली बार इसे फिर से फ़ेच किया जाएगा या इसका फिर से आकलन किया जाएगा.

"बदलाव" में ये बदलाव शामिल हैं: फ़ाइल के कॉन्टेंट में बदलाव (अगर पाथ कोई फ़ाइल है); अगर पाथ पहले कोई फ़ाइल था, लेकिन अब कोई डायरेक्ट्री है या इसके उलट; और अगर पाथ मौजूद होना शुरू होता है या बंद होता है. खास तौर पर, अगर पाथ कोई डायरेक्ट्री है, तो डायरेक्ट्री में मौजूद किसी भी फ़ाइल में किए गए बदलाव इसमें शामिल नहीं होते हैं. इसके लिए, path.readdir() का इस्तेमाल करें.

ध्यान दें कि फ़िलहाल फ़ेच की जा रही रेपो या मौजूदा मॉड्यूल एक्सटेंशन की वर्किंग डायरेक्ट्री में पाथ देखने की कोशिश करने पर, गड़बड़ी होगी. अगर कोई मॉड्यूल एक्सटेंशन, मौजूदा Bazel वर्कस्पेस से बाहर के पाथ को देखने की कोशिश करता है, तो भी गड़बड़ी होगी.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
उस फ़ाइल का पाथ जिसे मॉनिटर करना है.

watch_tree

None repository_ctx.watch_tree(path)

इस विकल्प से Bazel को यह पता चलता है कि दिए गए पाथ के तहत आने वाली किसी भी फ़ाइल या डायरेक्ट्री में हुए बदलावों पर नज़र रखनी है. फ़ाइलों के कॉन्टेंट, फ़ाइलों या डायरेक्ट्री के मौजूद होने, फ़ाइल के नामों या डायरेक्ट्री के नामों में किसी भी तरह का बदलाव होने पर, इस रेपो को फिर से फ़ेच किया जाएगा.

ध्यान दें कि फ़िलहाल फ़ेच की जा रही रेपो में पाथ देखने की कोशिश करने पर, गड़बड़ी होगी.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
निगरानी के लिए डायरेक्ट्री ट्री का पाथ.

कौनसा

path repository_ctx.which(program)

यह फ़ंक्शन, पाथ में मौजूद प्रोग्राम का path दिखाता है. अगर पाथ में ऐसा कोई प्रोग्राम मौजूद नहीं है, तो None दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
program string; ज़रूरी है
पाथ में ढूंढने के लिए प्रोग्राम.
इसमें None मिल सकता है.

workspace_root

path repository_ctx.workspace_root

Bazel इनवोकेशन के रूट वर्कस्पेस का पाथ.