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