กฎ
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 จะพิจารณา shebangs ดังนั้นจึงสามารถใช้ตัวแปลภาษาที่มีอยู่ได้ (เช่น
#!/bin/zsh)
ตัวอย่าง
สำหรับสคริปต์ของ Shell อย่างง่ายที่ไม่มีการขึ้นต่อกันและมีไฟล์ข้อมูลบางไฟล์ ให้ทำดังนี้
sh_binary(
name = "foo",
srcs = ["foo.sh"],
data = glob(["datafiles/*.txt"]),
)
อาร์กิวเมนต์
| แอตทริบิวต์ | |
|---|---|
name |
ชื่อ; ต้องระบุ ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ deps
ที่ แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการกฎ |
srcs
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการไฟล์ซอร์สโค้ดสคริปต์ของ Shell ที่เป็นของ ไลบรารีนี้ สคริปต์สามารถโหลดสคริปต์อื่นๆ ได้โดยใช้คำสั่ง |
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 และข้อมูลที่โปรแกรมเหล่านั้นต้องการในเวลาที่เรียกใช้งาน จากนั้นจึงใช้ "ไลบรารี" ดังกล่าวได้จาก
แอตทริบิวต์ data ของกฎอย่างน้อยหนึ่งรายการ
sh_binary
คุณสามารถใช้กฎ filegroup เพื่อรวมไฟล์ข้อมูล
ในภาษาโปรแกรมที่แปลภาษาแล้ว ไม่ได้มีการแยกความแตกต่างระหว่าง "โค้ด" กับ "ข้อมูล" อย่างชัดเจนเสมอไป เนื่องจากโปรแกรมเป็นเพียง "ข้อมูล" จากมุมมองของตัวแปลภาษา ด้วยเหตุนี้
กฎนี้จึงมีแอตทริบิวต์ 3 รายการที่เทียบเท่ากันโดยพื้นฐาน ได้แก่
srcs, deps และ data
การใช้งานปัจจุบันไม่ได้แยกความแตกต่างระหว่างองค์ประกอบของรายการเหล่านี้
แอตทริบิวต์ทั้ง 3 รายการยอมรับกฎ ไฟล์ซอร์ส และไฟล์ที่สร้างขึ้น
อย่างไรก็ตาม การใช้แอตทริบิวต์ตามวัตถุประสงค์ปกติ (เช่นเดียวกับกฎอื่นๆ) ถือเป็นแนวทางปฏิบัติที่ดี
ตัวอย่าง
sh_library(
name = "foo",
data = [
":foo_service_script", # an sh_binary with srcs
":deploy_foo", # another sh_binary with srcs
],
)
อาร์กิวเมนต์
| แอตทริบิวต์ | |
|---|---|
name |
ชื่อ; ต้องระบุ ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ deps
ที่ แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการกฎ |
srcs
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการไฟล์ซอร์สโค้ดสคริปต์ของ Shell ที่เป็นของ ไลบรารีนี้ สคริปต์สามารถโหลดสคริปต์อื่นๆ ได้โดยใช้คำสั่ง |
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 จะพิจารณา shebangs ดังนั้นจึงสามารถใช้ตัวแปลภาษาที่มีอยู่ได้ (เช่น
#!/bin/zsh)
ตัวอย่าง
สำหรับสคริปต์ของ Shell อย่างง่ายที่ไม่มีการขึ้นต่อกันและมีไฟล์ข้อมูลบางไฟล์ ให้ทำดังนี้
sh_binary(
name = "foo",
srcs = ["foo.sh"],
data = glob(["datafiles/*.txt"]),
)
อาร์กิวเมนต์
| แอตทริบิวต์ | |
|---|---|
name |
ชื่อ; ต้องระบุ ชื่อที่ไม่ซ้ำกันสำหรับเป้าหมายนี้ |
deps
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ deps
ที่ แอตทริบิวต์ทั่วไปที่กำหนดโดย
กฎการสร้างส่วนใหญ่
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการกฎ |
srcs
|
รายการป้ายกำกับ; ค่าเริ่มต้นคือ
แอตทริบิวต์นี้ควรใช้เพื่อแสดงรายการไฟล์ซอร์สโค้ดสคริปต์ของ Shell ที่เป็นของ ไลบรารีนี้ สคริปต์สามารถโหลดสคริปต์อื่นๆ ได้โดยใช้คำสั่ง |