@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 फ़ाइल से, यूआरएल की सूची के लिए सही auth डिक्शनरी पाने का यूटिलिटी फ़ंक्शन.
अगर netrc और auth_patterns एट्रिब्यूट उपलब्ध हैं, तो उन्हें इस्तेमाल करने की सुविधा.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |
urls |
ज़रूरी है.
पढ़ने के लिए यूआरएल की सूची |
रिटर्न
auth डिक्शनरी, जिसे repository_ctx.download में पास किया जा सकता है
शायद
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe")
maybe(repo_rule, name, kwargs)
किसी डेटाबेस को सिर्फ़ तब जोड़ने का यूटिलिटी फ़ंक्शन, जब वह पहले से मौजूद न हो.
इसका मकसद, सुरक्षित डेटाबेस लागू करना है. इसके बारे में https://bazel.build/rules/deploying#dependencies में, safe repositories.bzl मैक्रो के बारे में बताया गया है.
पैरामीटर
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 -c में एक-एक करके पास की जाने वाली बैश कमांड. स्ट्रिंग की सूची |
patch_cmds_win |
ज़रूरी नहीं. डिफ़ॉल्ट वैल्यू None है
पैच लागू करने के लिए, powershell /c में एक-एक करके पास की जाने वाली Powershell कमांड. स्ट्रिंग की सूची. अगर इस पैरामीटर की बूलियन वैल्यू 'गलत' है, तो 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 फ़ाइल और यूआरएल की सूची से, auth डिक्शनरी का हिसाब लगाएं.
पैरामीटर
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)
BUILD फ़ाइल लिखने के लिए यूटिलिटी फ़ंक्शन.
इस नियम का इस्तेमाल, डेटाबेस के किसी नियम के लागू करने वाले फ़ंक्शन में किया जाता है.
इसमें यह माना जाता है कि name, build_file, और build_file_content पैरामीटर, ctx.attr में मौजूद हैं. इनमें से आखिरी दो पैरामीटर की वैल्यू, None हो सकती है.
पैरामीटर
ctx |
ज़रूरी है.
डेटाबेस के उस नियम का डेटाबेस कॉन्टेक्स्ट जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है. |