सदस्य
लेबल
Label Label(input)यह फ़ंक्शन, लेबल स्ट्रिंग को
Label
ऑब्जेक्ट में बदलता है. ऐसा उस पैकेज के हिसाब से होता है जहां .bzl
सोर्स फ़ाइल को कॉल किया जा रहा है. अगर दिया गया मान पहले से ही Label
है, तो इसमें कोई बदलाव नहीं किया जाता.मैक्रो के लिए, मिलता-जुलता फ़ंक्शन native.package_relative_label()
, इनपुट को Label
में, फ़िलहाल बनाए जा रहे पैकेज के हिसाब से बदल देता है. उस फ़ंक्शन का इस्तेमाल करके स्ट्रिंग-टू-लेबल कन्वर्ज़न की नकल करें जो लेबल वैल्यू वाले नियम एट्रिब्यूट के ज़रिए अपने-आप होता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
input
|
string; or Label ;
ज़रूरी हैइनपुट लेबल स्ट्रिंग या लेबल ऑब्जेक्ट. अगर लेबल ऑब्जेक्ट को पास किया जाता है, तो उसे पहले जैसा किया जाता है. |
नाम
string Label.nameपैकेज के अंदर इस लेबल का नाम. उदाहरण के लिए:
Label("//pkg/foo:abc").name == "abc"
पैकेज
string Label.packageइस लेबल का पैकेज हिस्सा. उदाहरण के लिए:
Label("//pkg/foo:abc").package == "pkg/foo"
संबंधित
Label Label.relative(relName)यह ऐसे लेबल को हल करता है जो या तो पूरी तरह से (
//
से शुरू होता है) है या मौजूदा पैकेज से मिलता-जुलता है. अगर यह लेबल किसी रिमोट रिपॉज़िटरी (डेटा स्टोर करने की जगह) में है, तो तर्क को उस डेटा स्टोर करने की जगह के हिसाब से हल किया जाएगा. अगर आर्ग्युमेंट में किसी रिपॉज़िटरी का नाम शामिल है, तो मौजूदा लेबल को अनदेखा कर दिया जाता है और आर्ग्युमेंट को पहले की तरह ही दिखाया जाता है. हालांकि, अगर रिपॉज़िटरी की मौजूदा मैपिंग में रिपॉज़िटरी का नाम मौजूद है, तो उसे फिर से लिखा जाता है. रिज़र्व किए गए लेबल को पहले की तरह दिखाया जाएगा.उदाहरण के लिए:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux") Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux") Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux") Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public") Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
अगर डेटा स्टोर करने की जगह की मैपिंग {'@other' : '@remapped'}
है, तो डेटा को फिर से मैप किया जाएगा:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
relName
|
ज़रूरी है इस लेबल के हिसाब से, इस लेबल का समाधान किया जाएगा. |
workspace_name
string Label.workspace_nameइस लेबल का डेटा स्टोर करने की जगह का हिस्सा. उदाहरण के लिए,
Label("@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootइस लेबल के फ़ाइल फ़ोल्डर के लिए एक्ज़ीक्यूशन रूट दिखाता है. यह रूट, एक्सक्लूट के हिसाब से होता है. उदाहरण के लिए:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"