नियम
sh_binary
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, 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
|
यह एट्रिब्यूट एक सिंगलटन सूची होनी चाहिए, जिसका एलिमेंट शेल स्क्रिप्ट है.
यह स्क्रिप्ट एक्ज़ीक्यूटेबल होनी चाहिए. साथ ही, यह कोई सोर्स फ़ाइल या जनरेट की गई फ़ाइल हो सकती है.
रनटाइम के दौरान ज़रूरी अन्य सभी फ़ाइलें (चाहे स्क्रिप्ट हों या डेटा)
|
sh_library
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
इस नियम का मुख्य इस्तेमाल यह है कि
"लाइब्रेरी" जिसमें संबंधित स्क्रिप्ट शामिल हैं—ऐसे प्रोग्राम जो
अनुवाद की गई ऐसी भाषा जिसे कंपाइल करने या लिंक करने की ज़रूरत न हो,
जैसे कि बॉर्न शेल—और ऐसा कोई भी डेटा जिसे उन प्रोग्राम को
रन-टाइम. ऐसी "लाइब्रेरी" तो इसकी मदद से इस्तेमाल किया जा सकता है
एक याdata
sh_binary
और नियम.
डेटा इकट्ठा करने के लिए, filegroup
नियम का इस्तेमाल किया जा सकता है
फ़ाइलें शामिल हैं.
इंटरप्रेटेड प्रोग्रामिंग लैंग्वेज में, यह ज़रूरी नहीं है कि
"कोड" में अंतर और "data": आखिरकार, प्रोग्राम
बस "डेटा" एक अनुवादक के नज़रिए से देखा जा सकता है. इस वजह से
इस नियम में तीन एट्रिब्यूट हैं, जो सभी के लिए एक जैसे हैं:
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, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
sh_test()
नियम, बॉर्न शेल स्क्रिप्ट के तौर पर लिखा गया टेस्ट बनाता है.
एट्रिब्यूट, टेस्ट के सभी नियमों (*_test) के लिए आम होते हैं.
उदाहरण
sh_test( name = "foo_integration_test", size = "small", srcs = ["foo_integration_test.sh"], deps = [":foo_sh_lib"], data = glob(["testdata/*.txt"]), )
तर्क
विशेषताएं | |
---|---|
name |
इस टारगेट के लिए यूनीक नाम. |
deps
|
deps के बारे में सामान्य टिप्पणियां देखें
पर सामान्य विशेषताएं
ज़्यादातर बिल्ड रूल के तहत आते हैं.
इस एट्रिब्यूट का इस्तेमाल, उन |
srcs
|
यह एट्रिब्यूट एक सिंगलटन सूची होनी चाहिए, जिसका एलिमेंट शेल स्क्रिप्ट है.
यह स्क्रिप्ट एक्ज़ीक्यूटेबल होनी चाहिए. साथ ही, यह कोई सोर्स फ़ाइल या जनरेट की गई फ़ाइल हो सकती है.
रनटाइम के दौरान ज़रूरी अन्य सभी फ़ाइलें (चाहे स्क्रिप्ट हों या डेटा)
|