ctx.actions का इस्तेमाल करके, इस मॉड्यूल को ऐक्सेस करें.
सदस्य
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- map_directory
- run
- run_shell
- symlink
- template_dict
- लिखें
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all() की मदद से, इसे ऐक्शन कमांड में बड़ा किया जा सकता है. declare_directory के कॉन्टेंट में सिर्फ़ सामान्य फ़ाइलें और डायरेक्ट्री हो सकती हैं.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दी गई है, तो मौजूदा पैकेज के हिसाब से नई डायरेक्ट्री का पाथ. इसके अलावा, किसी फ़ाइल के लिए बेस नेम ('सिबलिंग' किसी डायरेक्ट्री को तय करता है). |
sibling
|
File; या None;
डिफ़ॉल्ट वैल्यू Noneहै यह एक ऐसी फ़ाइल होती है जो नई डायरेक्ट्री के साथ उसी डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling नहीं दिया गया है, तो फ़ाइल का नाम पैकेज डायरेक्ट्री के हिसाब से होता है. अगर sibling दिया गया है, तो फ़ाइल उसी डायरेक्ट्री में होती है जिसमें sibling होता है. फ़ाइलों को मौजूदा पैकेज के बाहर नहीं बनाया जा सकता.ध्यान रखें कि फ़ाइल का एलान करने के साथ-साथ, आपको एक ऐसी कार्रवाई भी बनानी होगी जो फ़ाइल को जनरेट करती हो. कार्रवाई बनाने के लिए, कार्रवाई के कंस्ट्रक्शन फ़ंक्शन में दिखाए गए File ऑब्जेक्ट को पास करना होगा.
ध्यान दें कि पहले से तय की गई आउटपुट फ़ाइलों को इस फ़ंक्शन का इस्तेमाल करके, तय करने की ज़रूरत नहीं होती. साथ ही, ऐसा नहीं किया जा सकता. इसके बजाय, ctx.outputs से उनके File ऑब्जेक्ट हासिल किए जा सकते हैं. इस्तेमाल का उदाहरण देखें.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दी गई है, तो मौजूदा पैकेज के हिसाब से नई फ़ाइल का पाथ. इसके अलावा, किसी फ़ाइल के लिए बेस नेम ('सिबलिंग' से डायरेक्ट्री का पता चलता है). |
sibling
|
फ़ाइल; या None;
डिफ़ॉल्ट वैल्यू Noneहै यह एक ऐसी फ़ाइल होती है जो नई बनाई गई फ़ाइल की तरह ही डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दी गई है, तो मौजूदा पैकेज के हिसाब से नए सिंबल लिंक का पाथ. इसके अलावा, किसी फ़ाइल के लिए बेस नेम ('सिबलिंग' किसी डायरेक्ट्री को तय करता है). |
sibling
|
File; या None;
डिफ़ॉल्ट वैल्यू Noneहै यह एक ऐसी फ़ाइल होती है जो नई डिक्लेयर की गई सिंबॉलिक लिंक वाली डायरेक्ट्री में मौजूद होती है. |
do_nothing
None actions.do_nothing(*, mnemonic, inputs=[])पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
mnemonic
|
string;
ज़रूरी है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
inputs
|
sequence of Files; या 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
|
dict;
डिफ़ॉल्ट तौर पर {}होता है टेंप्लेट को बड़ा करते समय किए जाने वाले बदलाव. |
is_executable
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है यह तय करता है कि आउटपुट फ़ाइल को एक्ज़ीक्यूट किया जा सकता है या नहीं. |
computed_substitutions
|
TemplateDict;
डिफ़ॉल्ट रूप से unboundहोता है टेंप्लेट को बड़ा करते समय किए जाने वाले बदलाव. |
map_directory
None actions.map_directory(*, input_directories, additional_inputs={}, output_directories, tools, additional_params={}, execution_requirements=None, exec_group=None, toolchain=None, use_default_shell_env=False, env=None, mnemonic=None, implementation)पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
input_directories
|
File का dict;
ज़रूरी है यह एक डिक्शनरी है, जो स्ट्रिंग को इनपुट डायरेक्ट्री पर मैप करती है. इसे ctx.actions.declare_directory() ने तय किया है. यहां सिर्फ़ डायरेक्ट्री को वैल्यू के तौर पर इस्तेमाल किया जा सकता है. इन वैल्यू से उन डायरेक्ट्री के बारे में पता चलता है जिन्हें हम लागू करने वाले फ़ंक्शन में उनकी फ़ाइलों को ऐक्सेस करने के लिए बड़ा करना चाहते हैं. कुंजियां (स्ट्रिंग), आइडेंटिफ़ायर के तौर पर काम करती हैं. इनसे लागू करने वाले फ़ंक्शन में किसी डायरेक्ट्री को आसानी से रेफ़रंस किया जा सकता है.
|
additional_inputs
|
dict;
डिफ़ॉल्ट रूप से {}होता है स्ट्रिंग को अतिरिक्त इनपुट के साथ मैप करने वाली डिक्शनरी. यहाँ सिर्फ़ फ़ाइलें, FilesToRunProvider(s), और Depset(s) इस्तेमाल की जा सकती हैं. इन वैल्यू से, हमें ऐसे अतिरिक्त इनपुट के बारे में पता चलता है जिन्हें हम लागू करने वाले फ़ंक्शन से बनाई गई कार्रवाइयों के लिए उपलब्ध कराना चाहते हैं. कुंजियां (स्ट्रिंग), आइडेंटिफ़ायर के तौर पर काम करती हैं. इनसे लागू करने वाले फ़ंक्शन में किसी खास इनपुट को आसानी से रेफ़रंस किया जा सकता है. |
output_directories
|
File का dict;
ज़रूरी है एक डिक्शनरी, जो स्ट्रिंग को आउटपुट डायरेक्ट्री पर मैप करती है. इसे ctx.actions.declare_directory() ने तय किया है. इन वैल्यू से उन आउटपुट डायरेक्ट्री के बारे में पता चलता है जिन्हें हमें लागू करने वाले फ़ंक्शन से बनाई गई कार्रवाइयों के ज़रिए जनरेट करना है. कुंजियां (स्ट्रिंग), आइडेंटिफ़ायर के तौर पर काम करती हैं. इनकी मदद से, लागू करने वाले फ़ंक्शन में किसी खास आउटपुट डायरेक्ट्री को आसानी से रेफ़रंस किया जा सकता है.
|
tools
|
dict;
required यह एक डिक्शनरी है, जिसमें स्ट्रिंग को टूल से मैप किया जाता है. यहाँ सिर्फ़ फ़ाइलों, FilesToRunProvider(s), और Depset(s) की अनुमति है. इन वैल्यू से उन टूल के बारे में पता चलता है जिन्हें हम लागू करने वाले फ़ंक्शन से बनाई गई कार्रवाइयों के लिए उपलब्ध कराना चाहते हैं. कुंजियां (स्ट्रिंग), आइडेंटिफ़ायर के तौर पर काम करती हैं. इनकी मदद से, लागू करने वाले फ़ंक्शन में किसी टूल को आसानी से रेफ़रंस किया जा सकता है. |
additional_params
|
dict;
डिफ़ॉल्ट रूप से {}होता है यह डिक्शनरी, स्ट्रिंग को अतिरिक्त पैरामीटर से मैप करती है. यहां सिर्फ़ स्ट्रिंग, बूलियन, और पूर्णांक वैल्यू इस्तेमाल की जा सकती हैं. इन वैल्यू से, उन अतिरिक्त पैरामीटर के बारे में पता चलता है जिन्हें हम लागू करने वाले फ़ंक्शन के लिए ऐक्सेस किया जा सकता है. इनका इस्तेमाल, फ़ंक्शन के व्यवहार पर असर डालने के लिए किया जा सकता है. कुंजियां (स्ट्रिंग), आइडेंटिफ़ायर के तौर पर काम करती हैं. इनकी मदद से, लागू करने वाले फ़ंक्शन में किसी पैरामीटर को आसानी से रेफ़रंस किया जा सकता है. |
execution_requirements
|
dict या None;
डिफ़ॉल्ट रूप से Noneहोता है बनाई गई कार्रवाइयों को शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें. |
exec_group
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है बनाई गई कार्रवाइयों को दिए गए एक्ज़ीक्यूशन ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर चलाएं. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
toolchain
|
Label; या string; या None;
डिफ़ॉल्ट रूप से Noneहोता है बनाई गई कार्रवाइयों के लिए इस्तेमाल किए गए एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से नहीं आ रहे हैं, तो इस पैरामीटर को अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से आ रहे हैं, तो टूलचेन का टाइप सेट होना चाहिए. इससे बनाई गई कार्रवाइयां, सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर काम करेंगी. ध्यान दें कि इन कार्रवाइयों को बनाने वाले नियम को, अपने 'rule()' फ़ंक्शन में इस टूलचेन को तय करना होगा.
|
use_default_shell_env
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है क्या बनाई गई कार्रवाइयों को डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल करना चाहिए. इसमें ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ --action_env के ज़रिए सेट किए गए वैरिएबल भी शामिल होते हैं.अगर |
env
|
dict; या None;
डिफ़ॉल्ट तौर पर Noneयह एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है. अगर |
mnemonic
|
string; या None;
डिफ़ॉल्ट रूप से Noneहोता है बनाई गई कार्रवाइयों के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
implementation
|
function;
ज़रूरी है यह एक Starlark फ़ंक्शन है, जिसे इनपुट डायरेक्ट्री बनाने के बाद कॉल किया जाता है. इससे ऐसे ऐक्शन जनरेट होते हैं जो आउटपुट फ़ाइलों को तय की गई आउटपुट डायरेक्ट्री में भेजते हैं. इस फ़ंक्शन को ये आर्ग्युमेंट पास किए जाते हैं:
|
रन
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; या depset;
डिफ़ॉल्ट रूप से []होता है कार्रवाई के इनपुट फ़ाइलों की सूची या depset. |
unused_inputs_list
|
File या None;
डिफ़ॉल्ट तौर पर Noneहोता है ऐसी फ़ाइल जिसमें कार्रवाई के लिए इस्तेमाल नहीं किए गए इनपुट की सूची होती है. इस फ़ाइल का कॉन्टेंट, आम तौर पर कार्रवाई के आउटपुट में से एक होता है. यह उन इनपुट फ़ाइलों की सूची से मेल खाता है जिनका इस्तेमाल, कार्रवाई पूरी होने तक नहीं किया गया था. उन फ़ाइलों में किए गए किसी भी बदलाव से, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए. |
executable
|
File या string या FilesToRunProvider;
ज़रूरी है यह वह एक्ज़ीक्यूटेबल फ़ाइल है जिसे कार्रवाई के ज़रिए कॉल किया जाना है. |
tools
|
sequence; या depset;
डिफ़ॉल्ट तौर पर unboundहोता है कार्रवाई के लिए ज़रूरी टूल की सूची या depset. टूल, ऐसे इनपुट होते हैं जिन्हें एक्ज़ीक्यूट किया जा सकता है. इनमें अपनी रनफ़ाइलें हो सकती हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. सूची में अलग-अलग तरह के ये आइटम शामिल हो सकते हैं:
ctx.executable और सूची में मौजूद FilesToRunProvider की रनफ़ाइलें अपने-आप जुड़ जाएंगी.File सभी टूल को इनपुट के तौर पर अपने-आप जोड़ दिया जाता है.
|
arguments
|
sequence;
डिफ़ॉल्ट तौर पर []होता है यह ऐक्शन के कमांड लाइन आर्ग्युमेंट होते हैं. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
|
mnemonic
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
progress_message
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल किया जा रहा है". मैसेज में %{label}, %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है कार्रवाई को डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल करना चाहिए या नहीं. इसमें ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ, --action_env के ज़रिए सेट किए गए वैरिएबल भी शामिल होते हैं.अगर |
env
|
dict; या None;
डिफ़ॉल्ट तौर पर Noneयह एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है. अगर |
execution_requirements
|
dict या None;
डिफ़ॉल्ट रूप से Noneहोता है कार्रवाई शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; या None;
डिफ़ॉल्ट तौर पर Noneहोता है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है यह दिए गए एक्ज़ीक्यूशन ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से Noneहोता है यह कार्रवाई, शैडो वाली कार्रवाई के दिए गए इनपुट और एनवायरमेंट का इस्तेमाल करके की जाती है. इनपुट और एनवायरमेंट को कार्रवाई के इनपुट की सूची और एनवायरमेंट में जोड़ा जाता है. कार्रवाई का एनवायरमेंट, शैडो वाली कार्रवाई के किसी भी एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर कोई भी नहीं है, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल करता है. |
resource_set
|
callable; या None;
डिफ़ॉल्ट तौर पर Noneयह एक कॉलबैक फ़ंक्शन है, जो संसाधन सेट डिक्शनरी दिखाता है. इसका इस्तेमाल, एक्ज़ीक्यूशन के समय संसाधन के इस्तेमाल का अनुमान लगाने के लिए किया जाता है. ऐसा तब होता है, जब यह कार्रवाई स्थानीय तौर पर की जाती है. यह फ़ंक्शन, दो पोज़ीशनल आर्ग्युमेंट स्वीकार करता है: ओएस के नाम को दिखाने वाली स्ट्रिंग (जैसे, "osx") और कार्रवाई के लिए इनपुट की संख्या को दिखाने वाला पूर्णांक. डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एंट्री, फ़्लोट या पूर्णांक हो सकती है:
अगर इस पैरामीटर को कॉलबैक, टॉप-लेवल का होना चाहिए. इसमें लैम्डा और नेस्ट किए गए फ़ंक्शन इस्तेमाल नहीं किए जा सकते. |
toolchain
|
Label; या string; या None;
डिफ़ॉल्ट रूप से unboundहोता है इस कार्रवाई में इस्तेमाल किए गए एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से नहीं आ रहे हैं, तो इस पैरामीटर को `None` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से आ रहे हैं, तो टूलचेन का टाइप सेट होना चाहिए. इससे यह पक्का किया जा सकेगा कि कार्रवाई, सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो. ध्यान दें कि इस कार्रवाई को बनाने वाले नियम को, अपने '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; या depset;
डिफ़ॉल्ट रूप से []होता है कार्रवाई के इनपुट फ़ाइलों की सूची या depset. |
tools
|
sequence of Files; या depset;
डिफ़ॉल्ट रूप से unboundहोता है कार्रवाई के लिए ज़रूरी किसी भी टूल की सूची या depset. टूल, ऐसे इनपुट होते हैं जिन्हें एक्ज़ीक्यूट किया जा सकता है. इनमें अपनी रनफ़ाइलें हो सकती हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. सूची में अलग-अलग तरह के ये आइटम शामिल हो सकते हैं:
ctx.executable और सूची में मौजूद FilesToRunProvider की रनफ़ाइलें अपने-आप जुड़ जाएंगी.File सभी टूल को इनपुट के तौर पर अपने-आप जोड़ दिया जाता है.
|
arguments
|
sequence;
डिफ़ॉल्ट तौर पर []होता है यह ऐक्शन के कमांड लाइन आर्ग्युमेंट होते हैं. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.Bazel, इस एट्रिब्यूट में मौजूद एलिमेंट को कमांड के लिए आर्ग्युमेंट के तौर पर पास करता है. कमांड, शेल वैरिएबल के बदले जाने की सुविधा का इस्तेमाल करके इन आर्ग्युमेंट को ऐक्सेस कर सकती है. जैसे, अगर |
mnemonic
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
command
|
string; या sequence of strings;
ज़रूरी है शेल कमांड को एक्ज़ीक्यूट करने के लिए. यह स्ट्रिंग (सुझाया गया) या स्ट्रिंग का क्रम (अब इस्तेमाल नहीं किया जा सकता) हो सकता है. अगर (अब इस्तेमाल नहीं किया जा सकता) अगर Bazel, कमांड को एक्ज़ीक्यूट करने के लिए उसी शेल का इस्तेमाल करता है जिसका इस्तेमाल वह जनरूल के लिए करता है. |
progress_message
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल किया जा रहा है". मैसेज में %{label}, %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है कार्रवाई को डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल करना चाहिए या नहीं. इसमें ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ, --action_env के ज़रिए सेट किए गए वैरिएबल भी शामिल होते हैं.अगर |
env
|
dict; या None;
डिफ़ॉल्ट तौर पर Noneयह एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है. अगर |
execution_requirements
|
dict या None;
डिफ़ॉल्ट रूप से Noneहोता है कार्रवाई शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; या None;
डिफ़ॉल्ट तौर पर Noneहोता है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है यह दिए गए एक्ज़ीक्यूशन ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से Noneहोता है यह कार्रवाई, शैडो ऐक्शन के खोजे गए इनपुट का इस्तेमाल करके की जाती है. इन इनपुट को ऐक्शन के इनपुट की सूची में जोड़ा जाता है. अगर कोई भी इनपुट नहीं है, तो सिर्फ़ कार्रवाई के इनपुट का इस्तेमाल करता है. |
resource_set
|
कॉलेबल; या None;
डिफ़ॉल्ट तौर पर Noneहोता है अगर इसे स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
|
toolchain
|
Label; या string; या None;
डिफ़ॉल्ट रूप से unboundहोता है इस कार्रवाई में इस्तेमाल किए गए एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से नहीं आ रहे हैं, तो इस पैरामीटर को `None` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से आ रहे हैं, तो टूलचेन का टाइप सेट होना चाहिए. इससे यह पक्का किया जा सकेगा कि कार्रवाई, सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो. ध्यान दें कि इस कार्रवाई को बनाने वाले नियम को, अपने 'rule()' फ़ंक्शन में इस टूलचेन को तय करना होगा. अगर `toolchain` और `exec_group` पैरामीटर, दोनों सेट किए गए हैं, तो `exec_group` का इस्तेमाल किया जाएगा. अगर `exec_group` में एक ही टूलचेन के बारे में नहीं बताया गया है, तो गड़बड़ी का मैसेज दिखता है. |
सिमलिंक
None actions.symlink(*, output, target_file=None, target_path=None, target_type=None, is_executable=False, progress_message=None)इस फ़ंक्शन को कॉल करते समय, target_file या target_path में से किसी एक को तय करना ज़रूरी है.
target_file का इस्तेमाल करते समय, declare_file() या declare_directory() के साथ output एट्रिब्यूट की वैल्यू दें. साथ ही, target_file एट्रिब्यूट की वैल्यू से output एट्रिब्यूट की वैल्यू का टाइप मैच होना चाहिए. इससे सिमलिंक, target_file पर पॉइंट करता है. सिमलिंक के टारगेट या उसके कॉन्टेंट में बदलाव होने पर, Bazel इस कार्रवाई के आउटपुट को अमान्य कर देता है.
इसके अलावा, target_path का इस्तेमाल करते समय, declare_symlink() के साथ output का एलान करें. इस मामले में, सिंबॉलिक लिंक target_path की ओर इशारा करता है. Bazel कभी भी सिमलंक को हल नहीं करता है. इस कार्रवाई का आउटपुट सिर्फ़ तब अमान्य होता है, जब सिमलंक के टेक्स्ट कॉन्टेंट (यानी कि readlink() की वैल्यू) में बदलाव होता है. खास तौर पर, इसका इस्तेमाल डैंगलिंग सिमलंक बनाने के लिए किया जा सकता है.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
output
|
File;
ज़रूरी है यह इस कार्रवाई का आउटपुट है. |
target_file
|
File; या None;
डिफ़ॉल्ट तौर पर Noneहोता है वह फ़ाइल जिस पर आउटपुट सिंबल लिंक पॉइंट करेगा. |
target_path
|
string; या None;
डिफ़ॉल्ट तौर पर Noneहोता है वह सटीक पाथ जिस पर आउटपुट सिंबल लिंक पॉइंट करेगा. इसमें कोई सामान्यीकरण या अन्य प्रोसेसिंग लागू नहीं की जाती. |
target_type
|
string; या None;
डिफ़ॉल्ट रूप से Noneहोता है इसका इस्तेमाल सिर्फ़ target_path के साथ किया जा सकता है, target_file के साथ नहीं. अगर इसे तय किया गया है, तो यह 'file' या 'directory' में से कोई एक होना चाहिए. इससे टारगेट पाथ के अनुमानित टाइप का पता चलता है.Windows पर, इससे यह तय होता है कि किस तरह का फ़ाइल सिस्टम ऑब्जेक्ट बनाया जाए. जैसे, किसी डायरेक्ट्री के लिए जंक्शन और किसी फ़ाइल के लिए सिमलंक. इसका असर अन्य ऑपरेटिंग सिस्टम पर नहीं पड़ता. |
is_executable
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है इसका इस्तेमाल सिर्फ़ target_file के साथ किया जा सकता है, target_path के साथ नहीं. अगर यह वैल्यू 'सही है' पर सेट है, तो कार्रवाई पूरी होने पर target_file के पाथ की जांच की जाती है. इससे यह पुष्टि की जाती है कि इसे एक्ज़ीक्यूट किया जा सकता है. अगर ऐसा नहीं होता है, तो गड़बड़ी की सूचना दी जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट को लागू नहीं किया जा सकता. इसका मतलब सिर्फ़ यह है कि पुष्टि नहीं की जाती.
|
progress_message
|
string; या None;
डिफ़ॉल्ट तौर पर Noneहै बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. |
template_dict
TemplateDict actions.template_dict()
मेरी मदद करो
None actions.write(output, content, is_executable=False, *, mnemonic=None)expand_template का इस्तेमाल करें.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
output
|
File;
required यह आउटपुट फ़ाइल है. |
content
|
string; या Args;
ज़रूरी है फ़ाइल का कॉन्टेंट. यह एक स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
|
is_executable
|
bool;
डिफ़ॉल्ट रूप से Falseहोता है यह तय करता है कि आउटपुट फ़ाइल को एक्ज़ीक्यूट किया जा सकता है या नहीं. |
mnemonic
|
string या None;
डिफ़ॉल्ट रूप से Noneहोता है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |