नीचे दिए गए फ़ंक्शन, @bazel_tools//tools/build_defs/repo:utils.bzl से लोड किए जा सकते हैं.
फ़ेच किए जाने के बाद, बाहरी डेटाबेस में बदलाव करने के लिए यूटिलिटी.
सेटअप
इन यूटिलिटी का इस्तेमाल, डेटाबेस के अन्य नियमों के लिए किया जाता है. इन्हें इस तरह लोड किया जा सकता है.
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
download_remote_files
load("@bazel//tools/build_defs/repo:utils.bzl", "download_remote_files")
download_remote_files(ctx, auth)
रिमोट फ़ाइलें डाउनलोड करने के लिए यूटिलिटी फ़ंक्शन.
इस नियम का इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है. यह मानता है कि ctx.attr में, remote_file_urls और remote_file_integrity पैरामीटर मौजूद हैं.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
auth |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
यह एक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है. हालांकि, ऐसा करना ज़रूरी नहीं है. |
get_auth
load("@bazel//tools/build_defs/repo:utils.bzl", "get_auth")
get_auth(ctx, urls)
.netrc फ़ाइल से, यूआरएल की सूची के लिए सही ऑथ डिक्शनरी पाने का यूटिलिटी फ़ंक्शन.
अगर netrc और auth_patterns एट्रिब्यूट उपलब्ध हैं, तो उन्हें इस्तेमाल किया जा सकता है.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
urls |
ज़रूरी है.
पढ़ने के लिए यूआरएल की सूची |
लौटाए गए आइटम
ऑथ डिक्शनरी, जिसे repository_ctx.download में पास किया जा सकता है
शायद
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe")
maybe(repo_rule, name, **kwargs)
यूटिलिटी फ़ंक्शन, जिसका इस्तेमाल किसी डेटाबेस को सिर्फ़ तब जोड़ा जाता है, जब वह पहले से मौजूद न हो.
इसका इस्तेमाल, सुरक्षित डेटाबेस.bzl मैक्रो को लागू करने के लिए किया जाता है. इसकी जानकारी, https://bazel.build/rules/deploying#dependencies पर दी गई है.
पैरामीटर
repo_rule |
ज़रूरी है.
डेटाबेस के नियम का फ़ंक्शन. |
name |
ज़रूरी है.
बनाए जाने वाले डेटाबेस का नाम. |
kwargs |
ज़रूरी नहीं है.
repo_rule फ़ंक्शन में पास किए जाने वाले बाकी आर्ग्युमेंट. |
लौटाए गए आइटम
कुछ नहीं. ज़रूरत पड़ने पर, डेटाबेस को साइड इफ़ेक्ट के तौर पर तय करता है.
parse_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "parse_netrc")
parse_netrc(contents, filename)
कम से कम एक बुनियादी .netrc फ़ाइल को पार्स करने के लिए यूटिलिटी फ़ंक्शन.
पैरामीटर
contents |
ज़रूरी है.
पार्सर के लिए इनपुट. |
filename |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू "a .netrc file" है
गड़बड़ी के मैसेज में इस्तेमाल किया जाने वाला फ़ाइल का नाम. अगर कोई गड़बड़ी होती है, तो. |
लौटाए गए आइटम
डिक्शनरी, जिसमें मशीन के नामों को डिक्शनरी पर मैप किया जाता है. इस डिक्शनरी में, मशीन के बारे में दी गई जानकारी होती है
पैच
load("@bazel//tools/build_defs/repo:utils.bzl", "patch")
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
पहले से एक्सट्रैक्ट किए गए डेटाबेस में पैच लागू करने की प्रोसेस.
इस नियम का इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है. अगर patches, patch_tool,
patch_args, patch_cmds और patch_cmds_win पैरामीटर तय नहीं किए जाते हैं
तो इनकी वैल्यू ctx.attr से ली जाती हैं.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
patches |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच फ़ाइलें, जिन्हें लागू करना है. स्ट्रिंग, लेबल या पाथ की सूची. |
patch_cmds |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, बैश कमांड. इन्हें bash -c में एक-एक करके पास किया जाता है. स्ट्रिंग की सूची |
patch_cmds_win |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, Powershell कमांड. इन्हें powershell /c में एक-एक करके पास किया जाता है. स्ट्रिंग की सूची. अगर इस पैरामीटर की बूलियन वैल्यू 'गलत' है, तो patch_cmds का इस्तेमाल किया जाएगा और इस पैरामीटर को अनदेखा कर दिया जाएगा. |
patch_tool |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, पैच टूल का पाथ. स्ट्रिंग. |
patch_args |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच टूल में पास किए जाने वाले आर्ग्युमेंट. स्ट्रिंग की सूची. |
auth |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
यह एक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है. हालांकि, ऐसा करना ज़रूरी नहीं है. |
read_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_netrc")
read_netrc(ctx, filename)
कम से कम एक बुनियादी .netrc फ़ाइल को पार्स करने के लिए यूटिलिटी फ़ंक्शन.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
filename |
ज़रूरी है.
पढ़ने के लिए .netrc फ़ाइल का नाम |
लौटाए गए आइटम
डिक्शनरी, जिसमें मशीन के नामों को डिक्शनरी पर मैप किया जाता है. इस डिक्शनरी में, मशीन के बारे में दी गई जानकारी होती है
read_user_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_user_netrc")
read_user_netrc(ctx)
उपयोगकर्ता की डिफ़ॉल्ट netrc फ़ाइल पढ़ें.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
लौटाए गए आइटम
डिक्शनरी, जिसमें मशीन के नामों को डिक्शनरी पर मैप किया जाता है. इस डिक्शनरी में, मशीन के बारे में दी गई जानकारी होती है.
update_attrs
load("@bazel//tools/build_defs/repo:utils.bzl", "update_attrs")
update_attrs(orig, keys, override)
किसी खास डेटाबेस के नियम को लागू करने के लिए, तय किए गए एट्रिब्यूट में बदलाव करने और उन्हें जोड़ने का यूटिलिटी फ़ंक्शन.
इसका इस्तेमाल, किसी नियम को फिर से लागू करने के लिए किया जाता है.
पैरामीटर
orig |
ज़रूरी है.
डिक्शनरी, जिसमें किसी नियम को लागू करने के लिए, सेट किए गए एट्रिब्यूट (साफ़ तौर पर या इंप्लिसिट तौर पर) की जानकारी होती है |
keys |
ज़रूरी है.
इस नियम के लिए तय किए गए एट्रिब्यूट का पूरा सेट |
override |
ज़रूरी है.
डिक्शनरी, जिसमें orig में जोड़े जाने वाले या बदले जाने वाले एट्रिब्यूट की जानकारी होती है |
लौटाए गए आइटम
एट्रिब्यूट की डिक्शनरी, जिसमें override से ली गई कुंजियां जोड़ी या अपडेट की गई हैं
use_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "use_netrc")
use_netrc(netrc, urls, patterns)
पार्स की गई netrc फ़ाइल और यूआरएल की सूची से, ऑथ डिक्शनरी का हिसाब लगाएं.
पैरामीटर
netrc |
ज़रूरी है.
एक netrc फ़ाइल, जिसे पहले से ही डिक्शनरी में पार्स किया गया है. जैसे, read_netrc से मिली फ़ाइल |
urls |
ज़रूरी है.
यूआरएल की सूची. |
patterns |
ज़रूरी है.
यूआरएल से ऑथराइज़ेशन पैटर्न पर मैप की गई डिक्शनरी. हालांकि, ऐसा करना ज़रूरी नहीं है |
लौटाए गए आइटम
डिक्शनरी, जिसे ctx.download के लिए ऑथ आर्ग्युमेंट के तौर पर इस्तेमाल किया जा सकता है. ज़्यादा सटीक तरीके से कहें, तो डिक्शनरी में उन सभी यूआरएल को मैप किया जाएगा जिनके लिए netrc फ़ाइल में लॉगिन और पासवर्ड की जानकारी दी गई है. साथ ही, इसमें लॉगिन, पासवर्ड, और ऑथराइज़ेशन पैटर्न (अगर कोई है) की जानकारी वाली डिक्शनरी भी शामिल होगी. इसके अलावा, इसमें "type" को "basic" या "pattern" पर मैप किया जाएगा.
workspace_and_buildfile
load("@bazel//tools/build_defs/repo:utils.bzl", "workspace_and_buildfile")
workspace_and_buildfile(ctx)
WORKSPACE और अनुरोध किए जाने पर, BUILD फ़ाइल लिखने के लिए यूटिलिटी फ़ंक्शन.
इस नियम का इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है.
यह मानता है कि ctx.attr में, name, build_file, build_file_content,
workspace_file, और workspace_file_content पैरामीटर मौजूद हैं. इनमें से आखिरी चार की वैल्यू, None हो सकती है.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |