कार्रवाइयां

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
किसी समस्या की शिकायत करें स्रोत देखें

कार्रवाई करने के लिए मॉड्यूल उपलब्ध कराता है. ctx.actions का इस्तेमाल करके, इस मॉड्यूल को ऐक्सेस करें.

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

आर्ग्युमेंट

Args actions.args()

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

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

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

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

पैरामीटर

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

एलान करने वाली फ़ाइल

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

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

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

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

पैरामीटर

पैरामीटर जानकारी
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; डिफ़ॉल्ट = अनबाउंड
कार्रवाई के लिए ज़रूरी किसी भी टूल की सूची या उसे हटाएं. टूल, ज़्यादा रन फ़ाइल वाले इनपुट होते हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध कराए जाते हैं. जब सूची उपलब्ध कराई जाती है, तो वह फ़ाइलों, FilesToRunProvider इंस्टेंस या फ़ाइलों के डिटेक्टलेस कलेक्शन हो सकती है. ऐसी फ़ाइलें जो सीधे सूची में हैं और ctx.executable से आती हैं, उनकी रनफ़ाइल अपने-आप जुड़ जाएंगी. जब डिसेट उपलब्ध कराया जाता है, तो उसमें केवल फ़ाइलें होनी चाहिए. दोनों मामलों में, डेप्सेट की फ़ाइलों को रन फ़ाइल के लिए ctx.executable के साथ क्रॉस-रेफ़रंस नहीं किया जाता है.
arguments sequence; डिफ़ॉल्ट = []
कार्रवाई के कमांड लाइन आर्ग्युमेंट. स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
mnemonic string; or None; डिफ़ॉल्ट = कोई नहीं
कार्रवाई का एक शब्द का ब्यौरा, जैसे कि CppCompile या GoLink.
progress_message string; or None; डिफ़ॉल्ट = कुछ नहीं
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज, उदाहरण के लिए, "foo.cc बनाने के लिए foo.cc तैयार करना". मैसेज में %{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"), और एक इंटेजर, जो कार्रवाई में इनपुट की संख्या दिखाता है. दिखाई गई डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एंट्री फ़्लोट या इंटेज हो सकती है:

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

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

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

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

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

इस समय कोई विकल्प उपलब्ध नहीं है, लेकिन हमारी सलाह है कि जब टूलचेन का इस्तेमाल किया जाए, तब इसे सेट करें. ऐसा इसलिए, क्योंकि आने वाले समय में Bazel की रिलीज़ में इसकी ज़रूरत होगी.

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

`टूलचेन` और `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 ऑब्जेक्ट फ़्लैट हो जाते हैं. साथ ही, अगर अज्ञात साइज़ का Args ऑब्जेक्ट मौजूद है, तो बाद की सभी स्ट्रिंग अनुमान लगाने लायक नहीं होंगी. अनिश्चित आकार वाले आर्ग ऑब्जेक्ट के साथ $@ का इस्तेमाल करने (सभी आर्ग्युमेंट वापस पाने) के लिए इस्तेमाल किया जा सकता है.

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

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

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

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

Bazel, एक ही शेल का इस्तेमाल करके, कमांड को एक्ज़ीक्यूट करता है, जैसे कि genrules के लिए किया जाता है.

progress_message string; or None; डिफ़ॉल्ट = कुछ नहीं
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज, उदाहरण के लिए, "foo.cc बनाने के लिए foo.cc तैयार करना". मैसेज में %{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; डिफ़ॉल्ट = अनबाउंड

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

इस समय कोई विकल्प उपलब्ध नहीं है, लेकिन हमारी सलाह है कि जब टूलचेन का इस्तेमाल किया जाए, तब इसे सेट करें. ऐसा इसलिए, क्योंकि आने वाले समय में Bazel की रिलीज़ में इसकी ज़रूरत होगी.

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

`टूलचेन` और `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
प्रयोग के तौर पर सेट करके, प्रयोग के आधार पर चालू किया जा सकता है: एक्सपेरिमेंटल टेंप्लेट एक्सपैंशन के लिए, कोई टेंप्लेटDic ऑब्जेक्ट देता है.

लिखना

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

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

पैरामीटर

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