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

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

सदस्य

attr

struct repository_ctx.attr

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

मिटाएं

bool repository_ctx.delete(path)

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

पैरामीटर

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

डाउनलोड करें

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

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

पैरामीटर

पैरामीटर ब्यौरा
url string; or Iterable of strings; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट रूप से ''
होता है यह आउटपुट फ़ाइल का पाथ होता है, जो रिपॉज़िटरी डायरेक्ट्री के हिसाब से होता है.
sha256 डिफ़ॉल्ट वैल्यू ''
है डाउनलोड की गई फ़ाइल का SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदली जा सकती हैं. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है.
executable डिफ़ॉल्ट वैल्यू False
है इस विकल्प का इस्तेमाल करके, बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट किया जाता है. डिफ़ॉल्ट रूप से, इसकी वैल्यू false होती है.
allow_fail डिफ़ॉल्ट रूप से False
अगर सेट किया जाता है, तो डाउनलोड नहीं हो पाने की वजह से गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी दिखाएं
canonical_id डिफ़ॉल्ट वैल्यू ''
है अगर यह विकल्प सेट किया जाता है, तो कैश मेमोरी से फ़ाइलें सिर्फ़ उन मामलों में मिलेंगी जहां फ़ाइल को एक ही कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth डिफ़ॉल्ट वैल्यू {}
है यह एक वैकल्पिक डिक्शनरी है. इसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है.
integrity डिफ़ॉल्ट वैल्यू ''
है डाउनलोड की गई फ़ाइल का अनुमानित चेकसम, सबरीसोर्स इंटिग्रिटी फ़ॉर्मैट में. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को शामिल न करने से सुरक्षा से जुड़ा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलों में बदलाव किया जा सकता है. इस फ़ील्ड को शामिल न करने पर, आपकी बिल्ड प्रोसेस पूरी तरह से अलग-थलग नहीं रहेगी. इसे सेट करना ज़रूरी नहीं है, लेकिन इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. हालांकि, इसे शिपिंग से पहले सेट करना ज़रूरी है.

download_and_extract

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

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

पैरामीटर

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

लागू करना

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

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

पैरामीटर

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

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

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})

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

पैरामीटर

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

फ़ाइल

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

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

पैरामीटर

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

नाम

string repository_ctx.name

इस नियम से बनाई गई बाहरी रिपॉज़िटरी का नाम.

os

repository_os repository_ctx.os

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

पैच

None repository_ctx.patch(patch_file, strip=0)

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

पैरामीटर

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

पाथ

path repository_ctx.path(path)

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

पैरामीटर

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

पढ़ा गया

string repository_ctx.read(path)

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

पैरामीटर

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

report_progress

None repository_ctx.report_progress(status='')

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

पैरामीटर

पैरामीटर ब्यौरा
status 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)

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

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; required
repository directory के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ.
template string; या Label; या path; required
टेंप्लेट फ़ाइल का पाथ.
substitutions डिफ़ॉल्ट रूप से, {}
टेंप्लेट को बड़ा करते समय किए जाने वाले बदलाव होते हैं.
executable डिफ़ॉल्ट रूप से True
होता है बनाई गई फ़ाइल पर, एक्ज़ीक्यूटेबल फ़्लैग सेट करता है. डिफ़ॉल्ट रूप से यह सही होता है.

कौनसा

path repository_ctx.which(program)

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

पैरामीटर

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

workspace_root

path repository_ctx.workspace_root

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