บริบทของกฎที่เก็บที่มีฟังก์ชันผู้ช่วยและข้อมูลเกี่ยวกับแอตทริบิวต์ คุณจะได้รับออบเจ็กต์ rel_ctx เป็นอาร์กิวเมนต์ของฟังก์ชัน implementation
เมื่อสร้างกฎที่เก็บ
สมาชิก
- attr
- ลบ
- ดาวน์โหลด
- download_and_extract
- ดำเนินการ
- แยก
- ไฟล์
- name
- ระบบปฏิบัติการ
- แพตช์
- เส้นทาง
- อ่าน
- report_progress
- ลิงก์สัญลักษณ์
- เทมเพลต
- ซึ่ง
- workspace_root
attr
struct repository_ctx.attrโครงสร้างสำหรับเข้าถึงค่าของแอตทริบิวต์ ค่าที่ระบุโดยผู้ใช้ (ถ้าไม่ใช่ ระบบจะใช้ค่าเริ่มต้น)
ลบ
bool repository_ctx.delete(path)ลบไฟล์หรือไดเรกทอรี แสดงบูลีนที่ระบุว่าไฟล์หรือไดเรกทอรีถูกลบโดยการเรียกนี้จริงหรือไม่
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; หรือ path
จำเป็น เส้นทางของไฟล์ที่จะลบ โดยสัมพันธ์กับไดเรกทอรีที่เก็บ หรือแบบสัมบูรณ์ อาจเป็นเส้นทางหรือสตริงก็ได้ |
ดาวน์โหลด
struct repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ และแสดงผล Struct ที่มี
success
ซึ่งเป็นแฟล็ก true
หากดาวน์โหลดสำเร็จ และหากดาวน์โหลดสำเร็จ จะแฮชของไฟล์ที่มีช่อง sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
string; หรือทำซ้ำได้โดยสตริง
จำเป็น รายการ URL มิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
string; หรือ ป้ายกำกับ หรือ path
ค่าเริ่มต้นคือ '' เส้นทางไปยังไฟล์เอาต์พุตที่สัมพันธ์กับไดเรกทอรีที่เก็บ |
sha256
|
ค่าเริ่มต้นคือ '' แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 นั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง |
executable
|
ค่าเริ่มต้นคือ False ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น "เท็จ" โดยค่าเริ่มต้น |
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากมีการตั้งค่า ให้จำกัดการพบแคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัสตามรูปแบบบัญญัติเดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางส่วน |
integrity
|
ค่าเริ่มต้นคือ '' การตรวจสอบข้อผิดพลาดที่คาดของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ แตกไฟล์ออกมา และแสดงผล Struct ที่มี
success
แฟล็กซึ่งเป็น true
หากดาวน์โหลดสำเร็จ และหากดาวน์โหลดสำเร็จ จะแฮชของไฟล์ที่มีช่อง sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
string; หรือทำซ้ำได้โดยสตริง
จำเป็น รายการ URL มิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
string; หรือ ป้ายกำกับ หรือ 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" หรือ ".tbz", ".ar" หรือ ".tbz" ที่นี่ |
stripPrefix
|
ค่าเริ่มต้นคือ '' คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดคำนำหน้าออกจากไฟล์ที่ดึงมาได้
|
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากมีการตั้งค่า ให้จำกัดการพบแคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัสตามรูปแบบบัญญัติเดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางส่วน |
integrity
|
ค่าเริ่มต้นคือ '' การตรวจสอบข้อผิดพลาดที่คาดของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง |
rename_files
|
ค่าเริ่มต้นคือ {} คำสั่ง (ไม่บังคับ) ที่ระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อดึงข้อมูลที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
ดำเนินการ
exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")เรียกใช้คำสั่งที่กำหนดโดยรายการอาร์กิวเมนต์ เวลาดำเนินการของคำสั่งถูกจำกัดโดย
timeout
(หน่วยเป็นวินาที ค่าเริ่มต้น 600 วินาที) เมธอดนี้จะแสดงโครงสร้าง exec_result
ที่มีเอาต์พุตของคำสั่ง สามารถใช้แมป environment
เพื่อลบล้างตัวแปรสภาพแวดล้อมบางอย่างที่จะส่งผ่านไปยังกระบวนการดังกล่าว
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
arguments
|
ต้องระบุ รายการอาร์กิวเมนต์ องค์ประกอบแรกควรเป็นเส้นทางไปยังโปรแกรมเพื่อเรียกใช้ |
timeout
|
ค่าเริ่มต้นคือ 600 ระยะเวลาสูงสุดของคำสั่งเป็นวินาที (ค่าเริ่มต้นคือ 600 วินาที) |
environment
|
ค่าเริ่มต้นคือ {} บังคับให้มีการตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างให้ส่งผ่านไปยังกระบวนการดังกล่าว |
quiet
|
ค่าเริ่มต้นคือ True ควรพิมพ์ Stdout และ stderr ที่เครื่องชำระเงิน |
working_directory
|
ค่าเริ่มต้นคือ "" ไดเรกทอรีการทำงานสำหรับการเรียกใช้คำสั่ง อาจสัมพัทธ์กับรูทของที่เก็บหรือแบบสัมบูรณ์ได้ |
แตกข้อมูล
None
repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})
แตกไฟล์ที่เก็บถาวรไปยังไดเรกทอรีที่เก็บ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
archive
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางไปยังที่เก็บถาวรที่จะคลายการแพคข้อมูล โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
output
|
string; หรือ ป้ายกำกับ หรือ path
ค่าเริ่มต้นคือ '' เส้นทางไปยังไดเรกทอรีที่ระบบจะคลายการแพคข้อมูลที่เก็บถาวรซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
stripPrefix
|
ค่าเริ่มต้นคือ '' คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดคำนำหน้าออกจากไฟล์ที่ดึงมาได้
|
rename_files
|
ค่าเริ่มต้นคือ {} คำสั่ง (ไม่บังคับ) ที่ระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อดึงข้อมูลที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
ไฟล์
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
สร้างไฟล์ในไดเรกทอรีที่เก็บด้วยเนื้อหาที่ระบุ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางของไฟล์ที่จะสร้าง โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
content
|
ค่าเริ่มต้นคือ '' เนื้อหาของไฟล์ที่ต้องการสร้างจะว่างเปล่าโดยค่าเริ่มต้น |
executable
|
ค่าเริ่มต้นคือ True ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น true โดยค่าเริ่มต้น |
legacy_utf8
|
ค่าเริ่มต้นคือ True เข้ารหัสเนื้อหาไฟล์เป็น UTF-8 ซึ่งเป็น true โดยค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนำพารามิเตอร์นี้ออก |
ชื่อ
string repository_ctx.nameชื่อของที่เก็บภายนอกที่สร้างโดยกฎนี้
ระบบปฏิบัติการ
repository_os repository_ctx.osโครงสร้างเพื่อเข้าถึงข้อมูลจากระบบ
แพตช์
None
repository_ctx.patch(patch_file, strip=0)
ใช้ไฟล์แพตช์กับไดเรกทอรีรูทของที่เก็บภายนอก ไฟล์แพตช์ควรเป็นไฟล์รูปแบบความแตกต่างแบบรวมมาตรฐาน การติดตั้งใช้งานแพตช์ Bazel เนทีฟไม่รองรับการจับคู่ Fuzz และแพตช์ไบนารี เช่น เครื่องมือบรรทัดคำสั่งแพตช์
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
patch_file
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น ไฟล์แพตช์ที่จะใช้อาจเป็นป้ายกำกับ เส้นทางที่เกี่ยวข้อง หรือเส้นทางสัมบูรณ์ หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะระบุเส้นทางดังกล่าวไปยังไดเรกทอรีที่เก็บ |
strip
|
ค่าเริ่มต้นคือ 0 นำจำนวนคอมโพเนนต์นำหน้าที่ระบุออกจากชื่อไฟล์ |
เส้นทาง
path repository_ctx.path(path)แสดงผลเส้นทางจากสตริง ป้ายกำกับ หรือเส้นทาง หากเส้นทางเป็นแบบสัมพัทธ์ ระบบจะแปลงค่าที่สัมพันธ์กับไดเรกทอรีที่เก็บ หากเส้นทางเป็นป้ายกำกับ ระบบจะเปลี่ยนค่าเป็นเส้นทางของไฟล์ที่เกี่ยวข้อง โปรดทราบว่าที่เก็บระยะไกลจะดำเนินการในระหว่างช่วงการวิเคราะห์ ดังนั้นจึงไม่สามารถขึ้นอยู่กับผลลัพธ์เป้าหมาย (ป้ายกำกับควรชี้ไปยังไฟล์ที่ไม่ได้สร้างขึ้น) หาก "เส้นทาง" เป็น "เส้นทาง" ระบบจะแสดงผลเส้นทางตามเดิม
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น สตริง ป้ายกำกับ หรือเส้นทางที่จะนำไปสร้างเส้นทาง |
อ่าน
string repository_ctx.read(path)อ่านเนื้อหาของไฟล์ในระบบไฟล์
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางของไฟล์ที่จะอ่าน |
report_progress
None
repository_ctx.report_progress(status='')
อัปเดตสถานะความคืบหน้าสำหรับการดึงข้อมูลของที่เก็บหรือส่วนขยายโมดูลนี้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
status
|
string;
ค่าเริ่มต้นคือ '' สตริงที่อธิบายสถานะปัจจุบันของความคืบหน้าการดึงข้อมูล |
ลิงก์สัญลักษณ์
None
repository_ctx.symlink(target, link_name)
สร้างลิงก์สัญลักษณ์บนระบบไฟล์
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
target
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางที่ลิงก์สัญลักษณ์ควรชี้ไป |
link_name
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางของลิงก์สัญลักษณ์ที่จะสร้างซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
เทมเพลต
None
repository_ctx.template(path, template, substitutions={}, executable=True)
สร้างไฟล์ใหม่โดยใช้ template
ทุกรายการใน template
ของคีย์ substitutions
จะถูกแทนที่ด้วยค่าที่เกี่ยวข้อง ผลลัพธ์เขียนเป็นภาษาpath
อาร์กิวเมนต์ executable
ที่ไม่บังคับ (ค่าเริ่มต้นคือ true) สามารถเปิดหรือปิดบิตสั่งการได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น เส้นทางของไฟล์ที่จะสร้าง โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
template
|
string; หรือ ป้ายกำกับ หรือ path
จำเป็น ไปยังไฟล์เทมเพลต |
substitutions
|
ค่าเริ่มต้นคือ {} ใช้แทนเมื่อขยายเทมเพลต |
executable
|
ค่าเริ่มต้นคือ True ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น true โดยค่าเริ่มต้น |
ไหน
path repository_ctx.which(program)แสดงผลเส้นทางของโปรแกรมที่เกี่ยวข้องหรือ ไม่มี หากไม่มีโปรแกรมดังกล่าวในเส้นทาง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
program
|
ต้องระบุ โปรแกรมเพื่อค้นหาในเส้นทาง |
None
workspace_root
path repository_ctx.workspace_rootเส้นทางไปยังพื้นที่ทำงานรูทของการเรียกใช้ bazel