कार्रवाइयां

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

सदस्य

आर्ग्युमेंट

Args actions.args()

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

declare_directory

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

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

पैरामीटर

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

declare_file

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)

प्रयोग के तौर पर. इस पैरामीटर को अभी आज़माया जा रहा है और इसमें किसी भी समय बदलाव किया जा सकता है. कृपया इस पर निर्भर न रहें. इसे --experimental_allow_unresolved_symlinks सेट करके प्रयोग के तौर पर चालू किया जा सकता है

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

पैरामीटर

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

do_nothing

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

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

पैरामीटर

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

expand_template

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

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

पैरामीटर

पैरामीटर ब्यौरा
template ज़रूरी है
टेंप्लेट फ़ाइल, जो UTF-8 कोड में बदली गई टेक्स्ट फ़ाइल होती है.
output ज़रूरी है
आउटपुट फ़ाइल, जो UTF-8 कोड में बदली गई टेक्स्ट फ़ाइल होती है.
substitutions default = {}
टेंप्लेट को बड़ा करते समय किए जाने वाले विकल्प.
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=None)

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

पैरामीटर

पैरामीटर ब्यौरा
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 इंस्टेंस या Files के डिपार्टमेंट का एक विषम संग्रह हो सकता है. जो फ़ाइलें सीधे सूची में हैं और ctx.executable से आती हैं उनकी रनफ़ाइल अपने-आप जुड़ जाएंगी. जब डिप्सेट दिया जाता है, तो उसमें सिर्फ़ Files ही शामिल होना चाहिए. दोनों ही मामलों में, रनफ़ाइल के लिए 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") दिखाने वाली स्ट्रिंग और ऐक्शन के लिए इनपुट की संख्या दिखाने वाला पूर्णांक. लौटाए गए शब्दकोश में निम्न प्रविष्टियां हो सकती हैं, जिनमें से प्रत्येक फ़्लोट या पूर्णांक हो सकती है:

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

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

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

toolchain Label; or string; or None; डिफ़ॉल्ट = कोई नहीं

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

फ़िलहाल, इसमें कोई बदलाव नहीं किया जा सकता. हालांकि, हमारा सुझाव है कि जब किसी टूलचेन का इस्तेमाल किया जाए, तब इसे सेट कर लें. ऐसा इसलिए, क्योंकि आने वाले समय में 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=None)

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

पैरामीटर

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

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

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

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

अगर 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; 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; डिफ़ॉल्ट = कोई नहीं

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

फ़िलहाल, इसमें कोई बदलाव नहीं किया जा सकता. हालांकि, हमारा सुझाव है कि जब किसी टूलचेन का इस्तेमाल किया जाए, तब इसे सेट कर लें. ऐसा इसलिए, क्योंकि आने वाले समय में 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 File; or None; डिफ़ॉल्ट = कोई नहीं
वह फ़ाइल जिस पर आउटपुट सिमलिंक को ले जाया जाएगा.
target_path string; or None; डिफ़ॉल्ट = कोई नहीं
(प्रयोग के तौर पर उपलब्ध) वह सटीक पाथ जिस पर आउटपुट सिमलिंक ले जाएगा. कोई नॉर्मलाइज़ेशन या अन्य प्रोसेसिंग लागू नहीं की जाती. इस सुविधा को ऐक्सेस करने के लिए, --experimental_allow_unresolved_symlinks सेटिंग चालू करनी होगी.
is_executable डिफ़ॉल्ट = गलत
इसे सिर्फ़ target_file के साथ इस्तेमाल किया जा सकता है, target_path के साथ नहीं. अगर सही है, तो कार्रवाई के लागू होने पर, target_file के पाथ की जांच करके यह पुष्टि की जाती है कि उसे एक्ज़ीक्यूट किया जा सकता है. अगर ऐसा नहीं है, तो उसे गड़बड़ी की सूचना दी जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट को एक्ज़ीक्यूट नहीं किया जा सकता. इसका मतलब सिर्फ़ यह नहीं है कि कोई पुष्टि नहीं हुई है.

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

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

template_dict

TemplateDict actions.template_dict()

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

लिखें

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

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

पैरामीटर

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