डेटा स्टोर करने की जगह के नियमों का इस्तेमाल करता है

@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_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 ज़रूरी है.

डेटाबेस के नियम का डेटाबेस कॉन्टेक्स्ट, जो इस यूटिलिटी फ़ंक्शन को कॉल कर रहा है.