नीचे दिए गए फ़ंक्शन, @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 |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
अगर कोई गड़बड़ी होती है, तो गड़बड़ी के मैसेज में इस्तेमाल किया जाने वाला फ़ाइल का नाम. |
रिटर्न
डिक्शनरी, जिसमें मशीन के नामों को उनसे जुड़ी जानकारी वाली डिक्शनरी पर मैप किया जाता है
पैच
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 कमांड. इन्हें bash -c में एक-एक करके पास किया जाता है. स्ट्रिंग की सूची |
patch_cmds_win |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, Powershell कमांड. इन्हें powershell /c में एक-एक करके पास किया जाता है. स्ट्रिंग की सूची. अगर इस पैरामीटर की बूलियन वैल्यू 'गलत' है, तो patch_cmds का इस्तेमाल किया जाएगा और इस पैरामीटर को अनदेखा कर दिया जाएगा. |
patch_tool |
ज़रूरी नहीं है. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, patch टूल का पाथ. स्ट्रिंग. |
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 के लिए auth आर्ग्युमेंट के तौर पर इस्तेमाल की जा सकती है. ज़्यादा सटीक तरीके से कहें, तो डिक्शनरी में उन सभी यूआरएल को मैप किया जाएगा जिनके लिए 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 |
ज़रूरी है.
इस यूटिलिटी फ़ंक्शन को कॉल करने वाले, डेटाबेस के नियम का डेटाबेस कॉन्टेक्स्ट. |