नियम
sh_binary
नियम का सोर्स देखेंsh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
sh_binary
नियम का इस्तेमाल, शैल स्क्रिप्ट को लागू करने के लिए किया जाता है.
(sh_binary
गलत नाम है: इसके आउटपुट ज़रूरी नहीं कि बाइनरी हों.) इस नियम से यह पक्का होता है कि सभी डिपेंडेंसी बनाई गई हैं और वे runfiles
एरिया में दिखती हैं.
हमारा सुझाव है कि आप अपने sh_binary()
नियमों को स्क्रिप्ट के नाम के बाद नाम दें.स्क्रिप्ट के नाम में एक्सटेंशन शामिल न करें (जैसे, .sh
). नियम का नाम और फ़ाइल का नाम अलग-अलग होना चाहिए.
sh_binary
शेबांग का सम्मान करता है, इसलिए किसी भी उपलब्ध अनुवादक का इस्तेमाल किया जा सकता है (जैसे कि
#!/bin/zsh
)
उदाहरण
बिना किसी डिपेंडेंसी और कुछ डेटा फ़ाइलों वाली आसान शेल स्क्रिप्ट के लिए:
sh_binary( name = "foo", srcs = ["foo.sh"], data = glob(["datafiles/*.txt"]), )
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट deps के बारे में सामान्य टिप्पणियां देखने के लिए, ज़्यादातर बिल्ड नियमों के मुताबिक तय किए गए सामान्य एट्रिब्यूट पर जाएं.
इस एट्रिब्यूट का इस्तेमाल, उन अन्य |
srcs
|
लेबल की सूची; डिफ़ॉल्ट
इस एट्रिब्यूट का इस्तेमाल, इस लाइब्रेरी से जुड़ी शेल स्क्रिप्ट सोर्स फ़ाइलों की सूची बनाने के लिए किया जाना चाहिए. स्क्रिप्ट, शेल के |
env_inherit
|
स्ट्रिंग की सूची; डिफ़ॉल्ट रूप से |
sh_library
नियम का सोर्स देखेंsh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
इस नियम का मुख्य मकसद, मिलती-जुलती स्क्रिप्ट से बनी एक लॉजिकल "लाइब्रेरी" को एक साथ इकट्ठा करना है. इन स्क्रिप्ट में, ऐसी भाषा में लिखे गए प्रोग्राम होते हैं जिन्हें समझने के लिए, उन्हें कंपाइल या लिंक करने की ज़रूरत नहीं होती. जैसे, Bourne shell. साथ ही, इसमें उन प्रोग्राम के लिए ज़रूरी डेटा भी शामिल होता है जो रन-टाइम के दौरान इस्तेमाल किए जाते हैं. इसके बाद, एक या एक से ज़्यादा sh_binary
नियमों के data
एट्रिब्यूट से, ऐसी "लाइब्रेरी" का इस्तेमाल किया जा सकता है.
डेटा फ़ाइलें इकट्ठा करने के लिए, filegroup
नियम का इस्तेमाल
किया जा सकता है.
इंटरप्रिटेड प्रोग्रामिंग भाषाओं में, "कोड" और "डेटा" के बीच हमेशा साफ़ तौर पर अंतर नहीं होता: आखिरकार, इंटरप्रिटर के हिसाब से प्रोग्राम सिर्फ़ "डेटा" होता है. इस वजह से,
इस नियम में तीन एट्रिब्यूट हैं, जो सभी असल में एक जैसे हैं:
srcs
, deps
, और data
.
फ़िलहाल, इन सूचियों के एलिमेंट के बीच कोई अंतर नहीं किया जाता.
तीनों एट्रिब्यूट में नियम, सोर्स फ़ाइलें, और जनरेट की गई फ़ाइलें सबमिट की जा सकती हैं.
हालांकि, दूसरे नियमों की तरह ही इन एट्रिब्यूट का इस्तेमाल सामान्य काम के लिए करना अच्छा तरीका है.
उदाहरण
sh_library( name = "foo", data = [ ":foo_service_script", # an sh_binary with srcs ":deploy_foo", # another sh_binary with srcs ], )
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट deps के बारे में सामान्य टिप्पणियां देखें.
इस एट्रिब्यूट का इस्तेमाल, उन अन्य |
srcs
|
लेबल की सूची; डिफ़ॉल्ट
इस एट्रिब्यूट का इस्तेमाल, इस लाइब्रेरी से जुड़ी शेल स्क्रिप्ट सोर्स फ़ाइलों की सूची बनाने के लिए किया जाना चाहिए. स्क्रिप्ट, शेल के |
sh_test
नियम का सोर्स देखेंsh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
sh_binary
नियम का इस्तेमाल, शैल स्क्रिप्ट को लागू करने के लिए किया जाता है.
(sh_binary
गलत नाम है: इसके आउटपुट ज़रूरी नहीं कि बाइनरी हों.) यह नियम पक्का करता है
कि सभी डिपेंडेंसी बनाई गई हैं और निष्पादन के समय runfiles
क्षेत्र में दिखाई देती हैं.
हमारा सुझाव है कि आप अपने sh_binary()
नियमों को स्क्रिप्ट के नाम के बाद नाम दें.स्क्रिप्ट के नाम में एक्सटेंशन शामिल न करें (जैसे, .sh
). नियम का नाम और फ़ाइल का नाम अलग-अलग होना चाहिए.
sh_binary
, शेलबैंग का इस्तेमाल करता है, ताकि किसी भी उपलब्ध इंटरप्रेटर का इस्तेमाल किया जा सके (उदाहरण के लिए,
#!/bin/zsh
)
उदाहरण
बिना किसी डिपेंडेंसी और कुछ डेटा फ़ाइलों वाली आसान शेल स्क्रिप्ट के लिए:
sh_binary( name = "foo", srcs = ["foo.sh"], data = glob(["datafiles/*.txt"]), )
तर्क
विशेषताएं | |
---|---|
name |
नाम; यह ज़रूरी है इस टारगेट के लिए यूनीक नाम. |
deps
|
लेबल की सूची; डिफ़ॉल्ट deps के बारे में सामान्य टिप्पणियां देखें.
इस एट्रिब्यूट का इस्तेमाल, उन अन्य |
srcs
|
लेबल की सूची; डिफ़ॉल्ट
इस एट्रिब्यूट का इस्तेमाल, इस लाइब्रेरी से जुड़ी शेल स्क्रिप्ट सोर्स फ़ाइलों की सूची बनाने के लिए किया जाना चाहिए. स्क्रिप्ट, शेल के |