नीचे दिए गए फ़ंक्शन, @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 |
ज़रूरी है.
यह डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट है जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
रिटर्न
यह एक डिक्शनरी है, जिसमें मशीन के नामों को उन मशीनों के बारे में दी गई जानकारी वाली डिक्शनरी पर मैप किया जाता है.
symlink_files
load("@bazel//tools/build_defs/repo:utils.bzl", "symlink_files")
symlink_files(ctx)
स्थानीय फ़ाइलों को सिमलंक करने के लिए यूटिलिटी फ़ंक्शन.
इसका इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है. इसमें यह माना जाता है कि ctx.attr में, files पैरामीटर मौजूद है.
मौजूदा फ़ाइलों को बदल दिया जाएगा.
पैरामीटर
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)
BUILD फ़ाइल लिखने के लिए यूटिलिटी फ़ंक्शन.
इस नियम का इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है.
इसमें यह माना जाता है कि name, build_file, और build_file_content पैरामीटर, ctx.attr में मौजूद हैं. इनमें से आखिरी दो पैरामीटर की वैल्यू, None हो सकती है.
पैरामीटर
ctx |
ज़रूरी है.
यह डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट है जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |