implementation
เมื่อสร้างส่วนขยายโมดูล
สมาชิก
- download
- download_and_extract
- execute
- extension_metadata
- ไฟล์
- is_dev_dependency
- โมดูล
- os
- เส้นทาง
- read
- report_progress
- root_module_has_non_dev_dependency
- ซึ่ง
ดาวน์โหลด
struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')
success
ซึ่งเป็นแฟล็กที่ค่าเป็น true
หากดาวน์โหลดเสร็จสมบูรณ์ และหากดาวน์โหลดสำเร็จ จะส่งคืนแฮชของไฟล์ที่มีฟิลด์ sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
string หรือ Iterable ของ string
ต้องระบุ รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
สตริง หรือ Label หรือ path
ค่าเริ่มต้นคือ '' เส้นทางไปยังไฟล์เอาต์พุตที่เกี่ยวข้องกับไดเรกทอรีที่เก็บ |
sha256
|
ค่าเริ่มต้นคือ '' แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 ถือเป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง |
executable
|
ค่าเริ่มต้นคือ False ตั้งค่าสถานะที่เรียกใช้งานได้ในไฟล์ที่สร้างขึ้น โดยค่าเริ่มต้นจะเป็น false |
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่า ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนที่จะแจ้งข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากตั้งค่า ให้จำกัดการเข้าชมแคชเฉพาะกรณีที่เพิ่มไฟล์ลงในแคชด้วยรหัส Canonical เดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ |
integrity
|
ค่าเริ่มต้นคือ '' ผลรวมตรวจสอบที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ต้องตรงกับผลรวมตรวจสอบของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})
success
ซึ่งเป็นแฟล็กที่แสดงเป็น true
หากดาวน์โหลดเสร็จสมบูรณ์ และหากดาวน์โหลดสำเร็จ จะแสดงแฮชของไฟล์ที่มีฟิลด์ sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
string หรือ Iterable ของ string
ต้องระบุ รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
string หรือ Label หรือ path
ค่าเริ่มต้นคือ '' เส้นทางไปยังไดเรกทอรีที่จะแตกไฟล์เก็บถาวร ซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
sha256
|
ค่าเริ่มต้นคือ '' แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 ถือเป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง หากระบุไว้ ระบบจะตรวจสอบแคชของที่เก็บก่อนเพื่อหาไฟล์ที่มีแฮชที่ระบุ และจะพยายามดาวน์โหลดก็ต่อเมื่อไม่พบไฟล์ในแคช หลังจากดาวน์โหลดสำเร็จแล้ว ระบบจะเพิ่มไฟล์ลงในแคช |
type
|
ค่าเริ่มต้นคือ '' ประเภทไฟล์เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ระบบจะกำหนดประเภทที่เก็บถาวรจากส่วนขยายของไฟล์ใน URL หากไฟล์ไม่มีนามสกุล คุณสามารถระบุ "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" หรือ ".deb" ได้ที่นี่ |
stripPrefix
|
ค่าเริ่มต้นคือ '' คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดซึ่งมีไฟล์ทั้งหมดในที่เก็บถาวร คุณสามารถใช้ฟิลด์นี้เพื่อนำคำนำหน้าออกจากไฟล์ที่แยกออกมาได้แทนที่จะต้องระบุคำนำหน้านี้ซ้ำๆ ใน build_file
|
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่า ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนที่จะแจ้งข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากตั้งค่า ให้จำกัดการเข้าชมแคชเฉพาะกรณีที่เพิ่มไฟล์ลงในแคชด้วยรหัส Canonical เดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ |
integrity
|
ค่าเริ่มต้นคือ '' ผลรวมตรวจสอบที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ต้องตรงกับผลรวมตรวจสอบของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง |
rename_files
|
ค่าเริ่มต้นคือ {} พจนานุกรมที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการแยก รายการที่เก็บถาวรซึ่งมีชื่อตรงกับคีย์จะได้รับการเปลี่ยนชื่อเป็นค่าก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งใช้เพื่อแยกไฟล์เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้ |
ดำเนินการ
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
(เป็นวินาที ค่าเริ่มต้นคือ 600 วินาที) เมธอดนี้จะแสดงผลโครงสร้าง exec_result
ที่มีเอาต์พุตของคำสั่ง คุณใช้แผนที่ environment
เพื่อลบล้างตัวแปรสภาพแวดล้อมบางอย่างที่จะส่งไปยังกระบวนการได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
arguments
|
required รายการอาร์กิวเมนต์ องค์ประกอบแรกควรเป็นเส้นทางไปยังโปรแกรมที่จะเรียกใช้ |
timeout
|
ค่าเริ่มต้นคือ 600 ระยะเวลาสูงสุดของคำสั่งเป็นวินาที (ค่าเริ่มต้นคือ 600 วินาที) |
environment
|
ค่าเริ่มต้นคือ {} บังคับให้ตั้งค่าตัวแปรสภาพแวดล้อมบางรายการเพื่อส่งไปยังกระบวนการ |
quiet
|
ค่าเริ่มต้นคือ True หากควรพิมพ์ stdout และ stderr ไปยังเทอร์มินัล |
working_directory
|
ค่าเริ่มต้นคือ "" ไดเรกทอรีการทำงานสำหรับการเรียกใช้คำสั่ง อาจเป็นแบบสัมพัทธ์กับรูทของที่เก็บหรือแบบสัมบูรณ์ก็ได้ |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
root_module_direct_deps
|
ลำดับของสตริง หรือสตริง หรือ None
ค่าเริ่มต้นคือ None ชื่อของที่เก็บที่ส่วนขยายถือว่าเป็นทรัพยากร Dependency โดยตรงของโมดูลรูท หากโมดูลรูทนำเข้าที่เก็บเพิ่มเติมหรือไม่ได้นำเข้าที่เก็บทั้งหมดเหล่านี้ผ่าน use_repo Bazel จะพิมพ์คำเตือนและคำสั่งแก้ไขเมื่อมีการประเมินส่วนขยายหากมีการระบุ คุณตั้งค่า |
root_module_direct_dev_deps
|
ลำดับของสตริง หรือสตริง หรือ None
ค่าเริ่มต้นคือ None ชื่อของที่เก็บที่ส่วนขยายถือว่าเป็นทรัพยากร Dependency สำหรับการพัฒนาโดยตรงของโมดูลรูท หากโมดูลรูทนำเข้ารีโปซิทอรีเพิ่มเติมหรือไม่นำเข้ารีโปซิทอรีทั้งหมดเหล่านี้ผ่าน use_repo ในพร็อกซีส่วนขยายที่สร้างด้วย use_extension(..., dev_dependency = True) Bazel จะพิมพ์คำเตือนและคำสั่งแก้ไขเมื่อมีการประเมินส่วนขยายหากมีการระบุ คุณตั้งค่า |
ไฟล์
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือ Label หรือ path
ต้องระบุ เส้นทางของไฟล์ที่จะสร้าง ซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
content
|
ค่าเริ่มต้นคือ '' เนื้อหาของไฟล์ที่จะสร้าง โดยค่าเริ่มต้นจะไม่มีเนื้อหา |
executable
|
ค่าเริ่มต้นคือ True ตั้งค่าสถานะที่เรียกใช้งานได้ในไฟล์ที่สร้างขึ้น โดยค่าเริ่มต้นจะเป็นจริง |
legacy_utf8
|
ค่าเริ่มต้นคือ True เข้ารหัสเนื้อหาของไฟล์เป็น UTF-8 ซึ่งเป็นค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนำพารามิเตอร์นี้ออก |
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)
devDependency = True
หรือไม่
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
tag
|
bazel_module_tag;
required แท็กที่ได้จาก bazel_module.tags |
โมดูล
list module_ctx.modules
os
repository_os module_ctx.os
เส้นทาง
path module_ctx.path(path)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string หรือ Label หรือ path
required สตริง ป้ายกำกับ หรือเส้นทางที่จะใช้สร้างเส้นทาง |
อ่าน
string module_ctx.read(path)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string หรือ Label หรือ path
required เส้นทางของไฟล์ที่จะอ่าน |
report_progress
None
module_ctx.report_progress(status='')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
status
|
string;
ค่าเริ่มต้นคือ '' สตริงที่อธิบายสถานะปัจจุบันของความคืบหน้าในการดึงข้อมูล |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency
ไหน
path module_ctx.which(program)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
program
|
ต้องระบุ โปรแกรมที่จะค้นหาในเส้นทาง |
None