कार्रवाइयां

समस्या की शिकायत करें सोर्स देखें

मॉड्यूल की मदद से फ़ंक्शन बनाए जा सकते हैं. ctx.actions का इस्तेमाल करके इस मॉड्यूल को ऐक्सेस करें.

पैसे चुकाकर बने सदस्य

आर्ग्युमेंट

Args actions.args()

ऐसा आर्ग्युमेंट ऑब्जेक्ट दिखाता है जिसका इस्तेमाल मेमोरी को बेहतर करने वाली कमांड लाइन बनाने के लिए किया जा सकता है.

एलान वाला डायरेक्ट्री

File actions.declare_directory(filename, *, sibling=None)

इससे यह पता चलता है कि नियम या आसपेक्ट रेशियो, मौजूदा पैकेज में दिए गए नाम की डायरेक्ट्री बनाता है. आपको एक ऐसी कार्रवाई बनानी होगी जो डायरेक्ट्री को जनरेट करे. डायरेक्ट्री के कॉन्टेंट को सीधे Starlark से ऐक्सेस नहीं किया जा सकता. हालांकि, Args.add_all() के साथ, किसी ऐक्शन कमांड में इसे बढ़ाया जा सकता है. किसी dec_directory की बढ़ाई गई सामग्री में सिर्फ़ सामान्य फ़ाइलें और डायरेक्ट्री हो सकती हैं.

पैरामीटर

पैरामीटर जानकारी
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दी गई है, तो मौजूदा पैकेज के हिसाब से नई डायरेक्ट्री का पाथ. अगर ऐसा नहीं है, तो फ़ाइल के मूल नाम के तौर पर एक डायरेक्ट्री चुनें.
sibling File; or None: डिफ़ॉल्ट = कोई नहीं
ऐसी फ़ाइल जो नई डायरेक्ट्री में मौजूद डायरेक्ट्री में मौजूद होती है. फ़ाइल मौजूदा पैकेज में होनी चाहिए.

एलान वाली फ़ाइल

File actions.declare_file(filename, *, sibling=None)

इससे पता चलता है कि नियम या आसपेक्ट रेशियो, दिए गए फ़ाइल नाम से एक फ़ाइल बनाता है. अगर sibling तय नहीं है, तो फ़ाइल का नाम पैकेज डायरेक्ट्री के हिसाब से होता है, नहीं तो फ़ाइल sibling वाली डायरेक्ट्री में होती है. फ़ाइलें मौजूदा पैकेज के बाहर नहीं बनाई जा सकतीं.

याद रखें कि फ़ाइल में मौजूद जानकारी का एलान करने के अलावा, आपको फ़ाइल बनाने वाली कार्रवाई भी अलग से बनानी होगी. ऐसी कार्रवाई बनाने के लिए, लौटाए गए File ऑब्जेक्ट को कार्रवाई के निर्माण फ़ंक्शन से पास करना होगा.

ध्यान दें कि इस फ़ंक्शन का इस्तेमाल करके, पहले से बताई गई आउटपुट फ़ाइलों का एलान करना ज़रूरी नहीं है (और न ही उन्हें ऐसा माना जा सकता है). आप इसके बजाय, ctx.outputs से उनके File ऑब्जेक्ट पा सकते हैं. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर जानकारी
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के हिसाब से नई फ़ाइल का पाथ. अगर ऐसा नहीं है, तो फ़ाइल के मूल नाम के आधार पर ही डायरेक्ट्री तय होती है.
sibling File; or None: डिफ़ॉल्ट = कोई नहीं
वह फ़ाइल जो उसी डायरेक्ट्री में रहती है जिसमें नई फ़ाइल बनाई गई है. फ़ाइल मौजूदा पैकेज में होनी चाहिए.

File actions.declare_symlink(filename, *, sibling=None)

इस पैरामीटर पर प्रयोग किया जा रहा है और यह किसी भी समय बदल सकता है. --noexperimental_allow_unresolved_symlinks सेट करके इसे बंद किया जा सकता है

इससे यह पता चलता है कि नियम या आसपेक्ट रेशियो, मौजूदा पैकेज में दिए गए नाम के साथ एक सिंबल बनाता है. आपको कोई ऐसी कार्रवाई बनानी होगी जो इस सिमलिंक को जनरेट करे. Bazel कभी भी इस सिमलिंक की व्याख्या नहीं करेगा और इसे सैंडबॉक्स या रिमोट एक्ज़ीक्यूटर को पढ़कर सुनाएगा. फ़िलहाल, ट्री आर्टफ़ैक्ट के अंदर मौजूद सिमलिंक का इस्तेमाल नहीं किया जा सकता.

पैरामीटर

पैरामीटर जानकारी
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के मुकाबले नए सिमलिंक का पाथ. अगर ऐसा नहीं है, तो फ़ाइल के मूल नाम के तौर पर एक डायरेक्ट्री चुनें.
sibling File; or None: डिफ़ॉल्ट = कोई नहीं
ऐसी फ़ाइल जो उसी डायरेक्ट्री में मौजूद होती है जिसका हाल ही में एलान किया गया सिमलिंक दिया गया है.

कुछ नहीं

None actions.do_nothing(mnemonic, inputs=[])

एक खाली कार्रवाई बनाता है, जो न तो कोई निर्देश देता है और न ही कोई आउटपुट देता है. यह 'अतिरिक्त कार्रवाइयां' डालने के लिए उपयोगी होता है.

पैरामीटर

पैरामीटर जानकारी
mnemonic ज़रूरी है
कार्रवाई का एक शब्द का ब्यौरा, उदाहरण के लिए, CppCompile या GoLink.
inputs sequence of Files; or depset; डिफ़ॉल्ट = [
कार्रवाई की इनपुट फ़ाइलों की सूची.

एक्सपैंशन टेंप्लेट

None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)

टेंप्लेट एक्सपैंशन की कार्रवाई बनाता है. कार्रवाई पूरी होने पर, टेंप्लेट के आधार पर एक फ़ाइल जनरेट होगी. टेंप्लेट के हिस्सों को substitutions डिक्शनरी की मदद से बदला जाएगा. इसकी जगह, विकल्पों को इस क्रम में डाला जाएगा. जब भी टेंप्लेट की डिक्शनरी की कोई कुंजी (पिछले बदलाव की वजह से) दिखे, तो उसे उससे जुड़ी वैल्यू से बदल दिया जाता है. बटनों के लिए कोई खास सिंटैक्स नहीं है. उदाहरण के लिए, कॉन्फ़्लिक्ट से बचने के लिए कर्ली ब्रैकेट का इस्तेमाल किया जा सकता है (उदाहरण के लिए, {KEY}). इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर जानकारी
template ज़रूरी है
टेंप्लेट फ़ाइल, जो UTF-8 कोड में बदली गई टेक्स्ट फ़ाइल है.
output ज़रूरी है
आउटपुट फ़ाइल, जो UTF-8 कोड में बदली गई टेक्स्ट फ़ाइल होती है.
substitutions डिफ़ॉल्ट = {}
टेंप्लेट को बड़ा करके सबमिट किए जाने वाले विकल्प.
is_executable डिफ़ॉल्ट = गलत
क्या आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए.
computed_substitutions TemplateDict: डिफ़ॉल्ट = अनबाउंड
एक्सपेरिमेंटल. इस पैरामीटर पर प्रयोग किया जा रहा है और यह किसी भी समय बदल सकता है. कृपया इस पर भरोसा न करें. इसे --+experimental_lazy_template_expansion
प्रयोग के तौर पर सेट किया जा सकता है: टेंप्लेट को बड़ा करते समय किए जाने वाले बदलाव.

रन

None actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)

ऐसी कार्रवाई बनाता है जिसमें एक्ज़ीक्यूटेबल चलता है. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर जानकारी
outputs sequence of Files ज़रूरी
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs sequence of Files; or depset; डिफ़ॉल्ट = [
कार्रवाई की इनपुट फ़ाइलों को सूची में शामिल करें या हटाएं.
unused_inputs_list File; or None: डिफ़ॉल्ट = कोई नहीं
ऐसी कार्रवाई जिसमें इनपुट का इस्तेमाल नहीं किया गया है.

इस फ़ाइल का कॉन्टेंट (आम तौर पर, कार्रवाई के किसी एक आउटपुट) उन इनपुट फ़ाइलों की सूची से मेल खाता है जिनका इस्तेमाल पूरी कार्रवाई के दौरान नहीं किया गया था. इन फ़ाइलों में किए जाने वाले किसी भी बदलाव का, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए.

executable File; or string; or FilesToRunProvider ज़रूरी है
ऐसी एक्ज़ीक्यूटेबल फ़ाइल जिसे कॉल करके कार्रवाई की जा सकती है.
tools sequence; or depset: डिफ़ॉल्ट = अनबाउंड
कार्रवाई के लिए ज़रूरी किसी भी टूल की सूची. टूल, अतिरिक्त रनफ़ाइल के साथ इनपुट होते हैं जो अपने-आप कार्रवाई के लिए उपलब्ध हो जाते हैं. जब कोई सूची दी जाती है, तो वह Files, FilesToRunProvider के इंस्टेंस या फ़ाइलों के डिस्ट्रेस का कलेक्शन हो सकती है. ऐसी फ़ाइलें जो सीधे तौर पर सूची में हैं और ctx.executable से आती हैं उनकी रनफ़ाइल अपने-आप जुड़ जाएंगी. अगर डिसेट उपलब्ध कराया जाता है, तो उसमें सिर्फ़ फ़ाइलें होनी चाहिए. दोनों मामलों में, डेप्सेट में मौजूद फ़ाइलों को रन फ़ाइलों के लिए ctx.executable से क्रॉस-रेफ़र नहीं किया जाता.
arguments sequence; डिफ़ॉल्ट = [
कार्रवाई के कमांड लाइन आर्ग्युमेंट. स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
mnemonic string; or None: डिफ़ॉल्ट = कोई नहीं
कार्रवाई का एक शब्द का ब्यौरा, उदाहरण के लिए, CppCompile या GoLink.
progress_message string; or None: डिफ़ॉल्ट = कोई नहीं
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.cc को कंपाइल करके foo.o बनाएं". मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इनकी जगह लेबल स्ट्रिंग, पहला इनपुट या आउटपुट पाथ डाला जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहले से तय पैटर्न ज़्यादा असरदार हैं.
use_default_shell_env डिफ़ॉल्ट = गलत
क्या कार्रवाई को बिल्ट-इन शेल एनवायरमेंट में इस्तेमाल करना चाहिए या नहीं.
env dict; or None: डिफ़ॉल्ट = कोई नहीं
एनवायरमेंट वैरिएबल का शब्दकोश सेट करता है.
execution_requirements dict; or None: डिफ़ॉल्ट = कोई नहीं
कार्रवाई शेड्यूल करने के लिए जानकारी. उपयोगी कुंजियों के लिए, टैग देखें.
input_manifests sequence; or None; डिफ़ॉल्ट = कोई नहीं
(प्रयोग के तौर पर) इनपुट इनपुट फ़ाइल के मेटाडेटा को सेट करता है; आम तौर पर, यह रिज़ॉल्यूशन_command की मदद से जनरेट होता है.
exec_group string; or None डिफ़ॉल्ट = कोई नहीं
दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई को चलाता है. अगर कोई भी टारगेट नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है.
shadowed_action Action: डिफ़ॉल्ट = कोई नहीं
दी गई शैडो वाली कार्रवाई के इनपुट और एनवायरमेंट का इस्तेमाल करके, कार्रवाई को चलाता है. यह इनपुट, ऐक्शन इनपुट और एनवायरमेंट में जोड़ा जाता है. ऐक्शन एनवायरमेंट, शैडो की गई किसी भी कार्रवाई के एनवायरमेंट वैरिएबल को बदल सकता है. अगर कुछ नहीं, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल करता है.
resource_set callable; or None डिफ़ॉल्ट = कुछ नहीं
यह एक कॉलबैक फ़ंक्शन है, जो रिसॉर्स सेट डिक्शनरी दिखाता है. इसका इस्तेमाल उस समय के इस्तेमाल के बारे में अनुमान लगाने के लिए किया जाता है, जब यह कार्रवाई स्थानीय तौर पर की जाती है.

फ़ंक्शन दो पोज़िशनल आर्ग्युमेंट स्वीकार करता है: ओएस के नाम को दिखाने वाली एक स्ट्रिंग (उदाहरण के लिए, "osx"), और कार्रवाई में इनपुट की संख्या दिखाने वाली इंटेजर. दिखाई गई डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एक, कोई फ़्लोट या पूर्णांक हो सकती है:

  • "सीपीयू": सीपीयू की संख्या; डिफ़ॉल्ट 1
  • "मेमोरी": एमबी में; डिफ़ॉल्ट 250
  • "local_test": स्थानीय टेस्ट की संख्या: डिफ़ॉल्ट 1

अगर यह पैरामीटर None पर सेट है या --experimental_action_resource_set गलत है, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.

कॉलबैक टॉप-लेवल (lambda) में होना चाहिए. साथ ही, नेस्ट किए गए फ़ंक्शन की अनुमति नहीं है.

toolchain Label; or string; or None: डिफ़ॉल्ट = अनबाउंड

इस कार्रवाई में इस्तेमाल किए जाने वाले एक्ज़ीक्यूटेबल या इस्तेमाल किए जा सकने वाले टूलचेन प्रकार. पैरामीटर सेट होना चाहिए, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो सके.

फ़िलहाल, इस टूल का इस्तेमाल नहीं किया जा सकता. हालांकि, हमारा सुझाव है कि जब टूलचेन का इस्तेमाल किया जाए, तो इसे सेट करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि आने वाले समय में Ba आवाज़ रिलीज़ करने वाले टूल की ज़रूरत होगी.

ध्यान दें कि इस कार्रवाई वाले नियम के लिए, इस टूलचेन को अपने 'rule()' फ़ंक्शन में तय करना ज़रूरी है.

जब `toolchain` और `exec_group` पैरामीटर दोनों सेट होते हैं, तो `exec_group` का इस्तेमाल किया जाएगा. अगर `exec_group` में इसकी जानकारी नहीं होती है, तो कोई गड़बड़ी होती है.

Run_shell

None actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)

ऐसी कार्रवाई बनाएं जो शेल कमांड चलाएं. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर जानकारी
outputs sequence of Files ज़रूरी
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs sequence of Files; or depset; डिफ़ॉल्ट = [
कार्रवाई की इनपुट फ़ाइलों को सूची में शामिल करें या हटाएं.
tools sequence of Files; or depset: डिफ़ॉल्ट = अनबाउंड
कार्रवाई के लिए ज़रूरी किसी भी टूल की सूची. टूल, अतिरिक्त रनफ़ाइल के साथ इनपुट होते हैं जो अपने-आप कार्रवाई के लिए उपलब्ध हो जाते हैं. इस सूची में Files या FilesToRunProvider के इंस्टेंस शामिल हो सकते हैं.
arguments sequence; डिफ़ॉल्ट = [
कार्रवाई के कमांड लाइन आर्ग्युमेंट. स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.

Bazel, इस एट्रिब्यूट में मौजूद एलिमेंट को कमांड के तौर पर आर्ग्युमेंट के तौर पर पास करता है.यह कमांड, शेल वैरिएबल के सब्सिट्यूशन, जैसे कि $1, $2 वगैरह का इस्तेमाल करके, इन आर्ग्युमेंट को ऐक्सेस कर सकता है. ध्यान दें कि अगर Args ऑब्जेक्ट, इंडेक्स होने से पहले फ़्लैट हो जाते हैं, तो आर्ग्युमेंट का साइज़ तय न होने पर, बाद की सभी स्ट्रिंग इंडेक्स नहीं होंगी. तय नहीं किए गए साइज़ के आर्ग्युमेंट ऑब्जेक्ट के साथ $@ का इस्तेमाल करने से (सभी आर्ग्युमेंट वापस पाने) फ़ायदेमंद हो सकता है.

इस मामले में, जहां command स्ट्रिंग की सूची हो, वहां इस पैरामीटर का इस्तेमाल नहीं किया जा सकता.

mnemonic string; or None: डिफ़ॉल्ट = कोई नहीं
कार्रवाई का एक शब्द का ब्यौरा, उदाहरण के लिए, CppCompile या GoLink.
command string; or sequence of strings ज़रूरी है
एक्ज़ीक्यूशन के लिए शेल कमांड. यह स्ट्रिंग (पसंदीदा) या स्ट्रिंग का क्रम (काम नहीं करता) हो सकता है.

अगर कोई स्ट्रिंग स्ट्रिंग है, तो उसे sh -c <command> "" <arguments> के मुताबिक वैसे ही प्रोसेस किया जाता है -- यानी arguments में मौजूद एलिमेंट को $1, $2 (या Windows बैच का इस्तेमाल करके %2) के तौर पर निर्देश के तौर पर उपलब्ध कराया जाता है. अगर arguments में कोई actions.args() ऑब्जेक्ट है, तो उनका कॉन्टेंट एक-एक करके कमांड लाइन में जोड़ा जाता है. इसलिए, $i का मतलब आर्ग्युमेंट ऑब्जेक्ट से हो सकता है. ध्यान दें कि अगर arguments के हिस्से के तौर पर कोई अज्ञात साइज़ का आर्ग्युमेंट ऑब्जेक्ट पास किया जाता है, तो स्ट्रिंग अनजान इंडेक्स में होंगी. ऐसे में, $@ शेल से जुड़े बदलाव (सभी आर्ग्युमेंट को वापस पाएं) काम का हो सकता है.

(काम नहीं करता) अगर command, स्ट्रिंग का एक क्रम है, तो पहला आइटम चलाने के लिए एक्ज़ीक्यूटेबल है और बाकी आइटम अपने आर्ग्युमेंट हैं. अगर इस फ़ॉर्म का इस्तेमाल किया गया है, तो arguments पैरामीटर नहीं दिया जाना चाहिए. ध्यान दें कि इस फ़ॉर्म के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. यह `--insupported_run_shell_command_string` के साथ बंद कर दिया गया है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड साथ काम करता है.

Bazel, कमांड को चलाने के लिए उसी शेल का इस्तेमाल करता है जैसा वह genनियमों के लिए करता है.

progress_message string; or None: डिफ़ॉल्ट = कोई नहीं
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.cc को कंपाइल करके foo.o बनाएं". मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इनकी जगह लेबल स्ट्रिंग, पहला इनपुट या आउटपुट पाथ डाला जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहले से तय पैटर्न ज़्यादा असरदार हैं.
use_default_shell_env डिफ़ॉल्ट = गलत
क्या कार्रवाई को बिल्ट-इन शेल एनवायरमेंट में इस्तेमाल करना चाहिए या नहीं.
env dict; or None: डिफ़ॉल्ट = कोई नहीं
एनवायरमेंट वैरिएबल का शब्दकोश सेट करता है.
execution_requirements dict; or None: डिफ़ॉल्ट = कोई नहीं
कार्रवाई शेड्यूल करने के लिए जानकारी. उपयोगी कुंजियों के लिए, टैग देखें.
input_manifests sequence; or None; डिफ़ॉल्ट = कोई नहीं
(प्रयोग के तौर पर) इनपुट इनपुट फ़ाइल के मेटाडेटा को सेट करता है; आम तौर पर, यह रिज़ॉल्यूशन_command की मदद से जनरेट होता है.
exec_group string; or None डिफ़ॉल्ट = कोई नहीं
दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई को चलाता है. अगर कोई भी टारगेट नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है.
shadowed_action Action डिफ़ॉल्ट = कोई नहीं
कार्रवाई के इनपुट की सूची में, दिए गए शैडो किए गए ऐक्शन के खोजे गए इनपुट का इस्तेमाल करके कार्रवाई करता है. अगर कोई इनपुट नहीं दिखता है, तो सिर्फ़ कार्रवाई के इनपुट का इस्तेमाल करें.
resource_set callable; or None: डिफ़ॉल्ट = कोई नहीं
अगर स्थानीय रूप से चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए, कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
toolchain Label; or string; or None: डिफ़ॉल्ट = अनबाउंड

इस कार्रवाई में इस्तेमाल किए जाने वाले एक्ज़ीक्यूटेबल या इस्तेमाल किए जा सकने वाले टूलचेन प्रकार. पैरामीटर सेट होना चाहिए, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो सके.

फ़िलहाल, इस टूल का इस्तेमाल नहीं किया जा सकता. हालांकि, हमारा सुझाव है कि जब टूलचेन का इस्तेमाल किया जाए, तो इसे सेट करें. ऐसा करना इसलिए ज़रूरी है, क्योंकि आने वाले समय में Ba आवाज़ रिलीज़ करने वाले टूल की ज़रूरत होगी.

ध्यान दें कि इस कार्रवाई वाले नियम के लिए, इस टूलचेन को अपने 'rule()' फ़ंक्शन में तय करना ज़रूरी है.

जब `toolchain` और `exec_group` पैरामीटर दोनों सेट होते हैं, तो `exec_group` का इस्तेमाल किया जाएगा. अगर `exec_group` में एक ही टूलचेन का इस्तेमाल नहीं होता है, तो कोई गड़बड़ी होती है.

None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)

एक ऐसी कार्रवाई बनाता है जो फ़ाइल सिस्टम में सिमलिंक लिखता है.

इस फ़ंक्शन के लिए target_file या target_path में से किसी एक का इस्तेमाल किया जाना चाहिए.

target_file का इस्तेमाल करते समय, output का एलान declare_file() या declare_directory() के साथ करें और target_file के टाइप से मैच करें. इससे सिमलिंक, target_file की तरफ़ इशारा कर जाता है. जब भी सिमलिंक या इसकी सामग्री में बदलाव होता है, तो बेज़ल इस कार्रवाई के आउटपुट को गलत कर देता है.

अगर target_path का इस्तेमाल नहीं किया जाता है, तो output का एलान declare_symlink() के साथ करें. इस मामले में, सिंबल, target_path के बारे में बताता है. Bazel कभी भी सिमलिंक का समाधान नहीं करता और इस कार्रवाई का आउटपुट सिर्फ़ तभी अमान्य होता है, जब सिमलिंक का टेक्स्ट कॉन्टेंट (यानी, readlink() का मान) बदलता है. खास तौर पर, इसका इस्तेमाल जोखिम भरे सिमलिंक बनाने में किया जा सकता है.

पैरामीटर

पैरामीटर जानकारी
output ज़रूरी है
इस कार्रवाई का आउटपुट.
target_file File; or None: डिफ़ॉल्ट = कोई नहीं
वह फ़ाइल जिसका आउटपुट आउटपुट लिंक होता है.
target_path string; or None: डिफ़ॉल्ट = कोई नहीं
वह सटीक पाथ जिस पर आउटपुट सिमलिंक ले जाएगा. कोई सामान्य प्रक्रिया या अन्य प्रोसेसिंग लागू नहीं की जाती.
is_executable डिफ़ॉल्ट = गलत
इसका इस्तेमाल सिर्फ़ target_file के साथ किया जा सकता है, target_path के साथ नहीं. सही होने पर, जब कार्रवाई एक्ज़ीक्यूट की जाती है, तब target_file के पाथ की जांच करके यह पक्का किया जाता है कि वह एक्ज़ीक्यूट किया जा सकता है. अगर नहीं, तो एक गड़बड़ी की रिपोर्ट की जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट एक्ज़ीक्यूटेबल नहीं है. इसके लिए, कोई पुष्टि नहीं की जाती.

यह सुविधा target_path के लिए सही नहीं है, क्योंकि हो सकता है कि बिल्ड सिम्युलेट करने के समय यह मौजूद न हो.

progress_message string; or None: डिफ़ॉल्ट = कोई नहीं
बिल्ड के दौरान उपयोगकर्ता को प्रोग्रेस मैसेज.

टेंप्लेट_सलाह

TemplateDict actions.template_dict()

प्रयोग के तौर पर. इस एपीआई को प्रयोग के तौर पर आज़माया जा रहा है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे --+experimental_lazy_template_expansion
प्रयोग के तौर पर सेट करके, प्रयोग के तौर पर चालू किया जा सकता है. यह मेमोरी को बेहतर बनाने वाले टेंप्लेट को बढ़ाने के लिए, टेंप्लेटDict ऑब्जेक्ट दिखाता है.

लिखें

None actions.write(output, content, is_executable=False)

इससे फ़ाइल लिखने की कार्रवाई बनती है. कार्रवाई पूरी होने पर, यह दिया गया कॉन्टेंट किसी फ़ाइल में लिखेगा. इसका इस्तेमाल विश्लेषण के दौरान उपलब्ध जानकारी के आधार पर फ़ाइलें जनरेट करने के लिए किया जाता है. अगर फ़ाइल बड़ी है और उसमें बहुत सारा स्टैटिक कॉन्टेंट है, तो expand_template का इस्तेमाल करें.

पैरामीटर

पैरामीटर जानकारी
output ज़रूरी है
आउटपुट फ़ाइल.
content string; or Args फ़ाइल का कॉन्टेंट
ज़रूरी है. कोई स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
is_executable डिफ़ॉल्ट = गलत
क्या आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए.