कार्रवाइयां

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कार्रवाइयां बनाने के लिए फ़ंक्शन उपलब्ध कराने वाला मॉड्यूल. ctx.actions का इस्तेमाल करके इस मॉड्यूल को ऐक्सेस करें.

सदस्य

आर्ग्युमेंट

Args actions.args()

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

declare_directory

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

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

पैरामीटर

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

declare_file

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

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

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

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

पैरामीटर

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

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

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

पैरामीटर

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

do_nothing

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

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

पैरामीटर

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

expand_template

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

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

पैरामीटर

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

रन

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 फ़ाइल का क्रम; ज़रूरी है
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs फ़ाइल का क्रम; या डिप्सेट; डिफ़ॉल्ट []
है कार्रवाई की इनपुट फ़ाइलों की सूची या सूची.
unused_inputs_list फ़ाइल; या None; डिफ़ॉल्ट रूप से None
है ऐसी फ़ाइल जिसमें इनपुट की ऐसी सूची दी गई है जिसका इस्तेमाल ऐसी कार्रवाई के लिए नहीं किया गया है.

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

executable फ़ाइल; या string; या FilesToRunProvider; ज़रूरी है
कार्रवाई से कॉल की जाने वाली एक्ज़ीक्यूटेबल फ़ाइल.
tools क्रम; या डिप्सेट; डिफ़ॉल्ट unbound
है कार्रवाई के लिए ज़रूरी सभी टूल की सूची बनाएं या उन्हें हटाएं. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध होते हैं. जब सूची दी जाती है, तब यह Files, FilesToRunProvider इंस्टेंस या Files के डिपार्टमेंट का एक विषम संग्रह हो सकता है. जो फ़ाइलें सीधे सूची में हैं और ctx.executable से आती हैं उनकी रनफ़ाइल अपने-आप जुड़ जाएंगी. जब डिप्सेट दिया जाता है, तो उसमें सिर्फ़ Files ही शामिल होना चाहिए. दोनों ही मामलों में, रनफ़ाइल के लिए ctx.executable के साथ डेपसेट में मौजूद फ़ाइलों की क्रॉस-रेफ़रंस नहीं की जाती है.
arguments क्रम; डिफ़ॉल्ट रूप से []
है कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
mnemonic string; या None; डिफ़ॉल्ट रूप से None
है कार्रवाई के बारे में एक शब्द में जानकारी, उदाहरण के लिए, CppCompile या GoLink.
progress_message string; या None; डिफ़ॉल्ट रूप से None
है बिल्ड के दौरान उपयोगकर्ता को प्रोग्रेस दिखाने वाला मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल करना". मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहली स्ट्रिंग ज़्यादा असरदार होती हैं.
use_default_shell_env डिफ़ॉल्ट रूप से False
है कार्रवाई में डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल किया जाना चाहिए या नहीं. इसमें, ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ --action_env के ज़रिए सेट किए गए वैरिएबल शामिल हैं.

अगर use_default_shell_env और env, दोनों को True पर सेट किया जाता है और --incompatible_merge_fixed_and_default_shell_env को चालू (डिफ़ॉल्ट) किया जाता है, तो env में सेट की गई वैल्यू, डिफ़ॉल्ट शेल एनवायरमेंट को ओवरराइट कर देंगी. अगर फ़्लैग चालू नहीं है, तो env को अनदेखा कर दिया जाता है.

env dict; या None; डिफ़ॉल्ट रूप से None
है एनवायरमेंट वैरिएबल की डिक्शनरी को सेट करता है.

अगर use_default_shell_env और env, दोनों को True पर सेट किया जाता है और --incompatible_merge_fixed_and_default_shell_env को चालू (डिफ़ॉल्ट) किया जाता है, तो env में सेट की गई वैल्यू, डिफ़ॉल्ट शेल एनवायरमेंट को ओवरराइट कर देंगी. अगर फ़्लैग चालू नहीं है, तो env को अनदेखा कर दिया जाता है.

execution_requirements dict; या None; डिफ़ॉल्ट रूप से None
है कार्रवाई शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए टैग देखें.
input_manifests क्रम; या None; डिफ़ॉल्ट रूप से None
है (प्रयोग के तौर पर) इनपुट रनफ़ाइल मेटाडेटा सेट करता है; आम तौर पर, ये रिज़ॉल्व_command से जनरेट होती हैं.
exec_group string; या None; डिफ़ॉल्ट रूप से None
है दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर ऐसा नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है.
shadowed_action कार्रवाई; डिफ़ॉल्ट रूप से None
है शैडो की गई कार्रवाई के इनपुट और कार्रवाई की इनपुट सूची और एनवायरमेंट में जोड़े गए एनवायरमेंट का इस्तेमाल करके कार्रवाई चलाता है. कार्रवाई एनवायरमेंट, शैडो की गई किसी भी कार्रवाई के एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर इनमें से कोई भी नहीं है, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल किया जाता है.
resource_set कॉल करने लायक; या None; डिफ़ॉल्ट रूप से None
है एक कॉलबैक फ़ंक्शन, जो संसाधन सेट डिक्शनरी दिखाता है. अगर इस कार्रवाई को स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए इसका इस्तेमाल किया जाता है.

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

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

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

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

toolchain लेबल; या string; या None; डिफ़ॉल्ट रूप से unbound
है

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

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

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

जब `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 फ़ाइल का क्रम; ज़रूरी है
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs फ़ाइल का क्रम; या डिप्सेट; डिफ़ॉल्ट []
है कार्रवाई की इनपुट फ़ाइलों की सूची या सूची.
tools फ़ाइल का क्रम; या डिप्सेट; डिफ़ॉल्ट unbound
है कार्रवाई के लिए ज़रूरी सभी टूल की सूची बनाएं या उन्हें हटाएं. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध होते हैं. इस सूची में Files या FilesToRunProvider के इंस्टेंस शामिल हो सकते हैं.
arguments क्रम; डिफ़ॉल्ट रूप से []
है कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.

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

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

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

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

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

बेज़ल, आदेश को अंजाम देने के लिए उसी शेल का इस्तेमाल करते हैं, जो जेन रूल के लिए करते हैं.

progress_message string; या None; डिफ़ॉल्ट रूप से None
है बिल्ड के दौरान उपयोगकर्ता को प्रोग्रेस दिखाने वाला मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल करना". मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहली स्ट्रिंग ज़्यादा असरदार होती हैं.
use_default_shell_env डिफ़ॉल्ट रूप से False
है कार्रवाई में डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल किया जाना चाहिए या नहीं. इसमें, ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ --action_env के ज़रिए सेट किए गए वैरिएबल शामिल हैं.

अगर use_default_shell_env और env, दोनों को True पर सेट किया जाता है और --incompatible_merge_fixed_and_default_shell_env को चालू (डिफ़ॉल्ट) किया जाता है, तो env में सेट की गई वैल्यू, डिफ़ॉल्ट शेल एनवायरमेंट को ओवरराइट कर देंगी. अगर फ़्लैग चालू नहीं है, तो env को अनदेखा कर दिया जाता है.

env dict; या None; डिफ़ॉल्ट रूप से None
है एनवायरमेंट वैरिएबल की डिक्शनरी को सेट करता है.

अगर use_default_shell_env और env, दोनों को True पर सेट किया जाता है और --incompatible_merge_fixed_and_default_shell_env को चालू (डिफ़ॉल्ट) किया जाता है, तो env में सेट की गई वैल्यू, डिफ़ॉल्ट शेल एनवायरमेंट को ओवरराइट कर देंगी. अगर फ़्लैग चालू नहीं है, तो env को अनदेखा कर दिया जाता है.

execution_requirements dict; या None; डिफ़ॉल्ट रूप से None
है कार्रवाई शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए टैग देखें.
input_manifests क्रम; या None; डिफ़ॉल्ट रूप से None
है (प्रयोग के तौर पर) इनपुट रनफ़ाइल मेटाडेटा सेट करता है; आम तौर पर, ये रिज़ॉल्व_command से जनरेट होती हैं.
exec_group string; या None; डिफ़ॉल्ट रूप से None
है दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर ऐसा नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है.
shadowed_action कार्रवाई; डिफ़ॉल्ट रूप से None
है शैडो की गई कार्रवाई के खोजे गए इनपुट को कार्रवाई की इनपुट सूची में जोड़े गए इनपुट का इस्तेमाल करके कार्रवाई चलाता है. अगर इनमें से कोई नहीं है, तो सिर्फ़ कार्रवाई के इनपुट का इस्तेमाल करता है.
resource_set कॉल करने लायक; या None; डिफ़ॉल्ट रूप से None
है अगर स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
toolchain लेबल; या string; या None; डिफ़ॉल्ट रूप से unbound
है

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

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

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

जब `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 पर सेट हो जाता है. जब भी सिमलिंक का टारगेट या इसके कॉन्टेंट में बदलाव होता है, तब Baज़ल, इस ऐक्शन के आउटपुट को अमान्य कर देता है.

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

पैरामीटर

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

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

progress_message string; या None; डिफ़ॉल्ट रूप से None
है बिल्ड के दौरान उपयोगकर्ता को दिखाया जाने वाला प्रोग्रेस मैसेज.

template_dict

TemplateDict actions.template_dict()

मेमोरी-कुशल टेम्प्लेट विस्तार के लिए एक templateDict ऑब्जेक्ट लौटाता है.

लिखें

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

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

पैरामीटर

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