ที่เก็บที่มีสิทธิ์

รายงานปัญหา ดูแหล่งที่มา

บริบทของกฎที่เก็บที่มีฟังก์ชันตัวช่วยและข้อมูลเกี่ยวกับแอตทริบิวต์ คุณจะได้รับออบเจ็กต์ rel_ctx เป็นอาร์กิวเมนต์ของฟังก์ชัน implementation เมื่อสร้างกฎที่เก็บ

สำหรับสมาชิก

แอตทริบิวต์

struct repository_ctx.attr

โครงสร้างสำหรับเข้าถึงค่าของแอตทริบิวต์ ค่าที่ระบุโดยผู้ใช้ (ถ้าไม่ใช่ ระบบจะใช้ค่าเริ่มต้น)

ลบ

bool repository_ctx.delete(path)

ลบไฟล์หรือไดเรกทอรี แสดงบูลีนที่ระบุว่าไฟล์หรือไดเรกทอรีถูกลบโดยการเรียกนี้จริงหรือไม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ path ที่จำเป็น
เส้นทางของไฟล์ที่จะลบโดยสัมพันธ์กับไดเรกทอรีที่เก็บ หรือ Absolute อาจเป็นเส้นทางหรือสตริงก็ได้

ดาวน์โหลด

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 หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไฟล์เอาต์พุตที่สัมพันธ์กับไดเรกทอรีที่เก็บ
sha256 ค่าเริ่มต้นคือ ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 นั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง
executable ค่าเริ่มต้นคือ False
ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น "เท็จ" โดยค่าเริ่มต้น
allow_fail ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ล้มเหลว
canonical_id ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการพบแคชเฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน
auth ค่าเริ่มต้นคือ {}
คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
integrity ค่าเริ่มต้นคือ ''
checksum ที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource 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 หรือ 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", ".deb" หรือ ".tbz" ที่นี่
stripPrefix ค่าเริ่มต้นคือ ''
ซึ่งเป็นคำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดคำนำหน้าออกจากไฟล์ที่ดึงมาได้
allow_fail ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ล้มเหลว
canonical_id ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการพบแคชเฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน
auth ค่าเริ่มต้นคือ {}
คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
integrity ค่าเริ่มต้นคือ ''
checksum ที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง
rename_files ค่าเริ่มต้นคือ {}
คำสั่ง (ไม่บังคับ) ที่ระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อดึงข้อมูลที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ 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 ค่าเริ่มต้นคือ True
หากควรพิมพ์ stdout และ stderr ไปยังเทอร์มินัล
working_directory ค่าเริ่มต้นคือ ""
ไดเรกทอรีที่ใช้งานอยู่สำหรับการเรียกใช้คำสั่ง อาจสัมพัทธ์กับรูทของที่เก็บหรือแบบสัมบูรณ์ได้

แตกข้อมูล

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})

แตกไฟล์ที่เก็บถาวรไปยังไดเรกทอรีที่เก็บ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
archive string หรือ Label หรือ path ต้องระบุ
เส้นทางไปยังที่เก็บถาวรที่จะคลายการแพคข้อมูล โดยสัมพันธ์กับไดเรกทอรีที่เก็บ
output string หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไดเรกทอรีที่ระบบจะคลายการแพคข้อมูลที่เก็บถาวร โดยสัมพันธ์กับไดเรกทอรีที่เก็บ
stripPrefix ค่าเริ่มต้นคือ ''
ซึ่งเป็นคำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดคำนำหน้าออกจากไฟล์ที่ดึงมาได้
rename_files ค่าเริ่มต้นคือ {}
คำสั่ง (ไม่บังคับ) ที่ระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อดึงข้อมูลที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ไฟล์

None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)

สร้างไฟล์ในไดเรกทอรีที่เก็บด้วยเนื้อหาที่ระบุ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่ต้องการสร้างโดยสัมพันธ์กับไดเรกทอรีที่เก็บ
content ค่าเริ่มต้นคือ ''
เนื้อหาของไฟล์ที่จะสร้าง และว่างเปล่าโดยค่าเริ่มต้น
executable ค่าเริ่มต้นคือ True
ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น true โดยค่าเริ่มต้น
legacy_utf8 ค่าเริ่มต้นคือ True
เข้ารหัสเนื้อหาไฟล์เป็น UTF-8 ซึ่งเป็นจริงโดยค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนำพารามิเตอร์นี้ออก

ชื่อ

string repository_ctx.name

ชื่อของที่เก็บภายนอกที่สร้างโดยกฎนี้

os

repository_os repository_ctx.os

โครงสร้างเพื่อเข้าถึงข้อมูลจากระบบ

แพตช์

None repository_ctx.patch(patch_file, strip=0)

ใช้ไฟล์แพตช์กับไดเรกทอรีรูทของที่เก็บภายนอก ไฟล์แพตช์ควรเป็นไฟล์รูปแบบความแตกต่างแบบรวมมาตรฐาน การติดตั้งใช้งานแพตช์ Bazel เนทีฟไม่รองรับการจับคู่ Fuzz และแพตช์ไบนารี เช่น เครื่องมือบรรทัดคำสั่งแพตช์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
patch_file string หรือ Label หรือ path ต้องระบุ
ไฟล์แพตช์ที่จะใช้ ซึ่งอาจเป็นป้ายกํากับ เส้นทางแบบสัมพัทธ์ หรือเส้นทางสัมบูรณ์ หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะระบุเส้นทางดังกล่าวไปยังไดเรกทอรีที่เก็บ
strip ค่าเริ่มต้นคือ 0
ตัดจำนวนคอมโพเนนต์นำหน้าที่ระบุออกจากชื่อไฟล์

เส้นทาง

path repository_ctx.path(path)

แสดงผลเส้นทางจากสตริง ป้ายกำกับ หรือเส้นทาง หากเส้นทางเป็นแบบสัมพัทธ์ ระบบจะแปลงค่าที่สัมพันธ์กับไดเรกทอรีที่เก็บ หากเส้นทางเป็นป้ายกำกับ ระบบจะเปลี่ยนค่าเป็นเส้นทางของไฟล์ที่เกี่ยวข้อง โปรดทราบว่าที่เก็บระยะไกลจะดำเนินการในระหว่างช่วงการวิเคราะห์ ดังนั้นจึงไม่สามารถขึ้นอยู่กับผลลัพธ์เป้าหมาย (ป้ายกำกับควรชี้ไปยังไฟล์ที่ไม่ได้สร้างขึ้น) หาก "เส้นทาง" เป็นเส้นทาง ระบบจะแสดงผลเส้นทางตามเดิม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
สตริง ป้ายกำกับ หรือเส้นทางที่จะใช้สร้างเส้นทาง

อ่าน

string repository_ctx.read(path)

อ่านเนื้อหาของไฟล์ในระบบไฟล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์เพื่ออ่าน

report_progress

None repository_ctx.report_progress(status='')

อัปเดตสถานะความคืบหน้าสำหรับการดึงข้อมูลของที่เก็บหรือส่วนขยายโมดูลนี้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
status string; ค่าเริ่มต้นคือ ''
สตริงที่อธิบายสถานะปัจจุบันของความคืบหน้าการดึงข้อมูล

None repository_ctx.symlink(target, link_name)

สร้างลิงก์สัญลักษณ์บนระบบไฟล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
target string หรือ Label หรือ path ต้องระบุ
เส้นทางที่ลิงก์สัญลักษณ์ควรชี้ไป
string หรือ Label หรือ path; ต้องระบุ
เส้นทางของลิงก์สัญลักษณ์ที่จะสร้างโดยสัมพันธ์กับไดเรกทอรีที่เก็บ

เทมเพลต

None repository_ctx.template(path, template, substitutions={}, executable=True)

สร้างไฟล์ใหม่โดยใช้ template ทุกรายการใน template ของคีย์ substitutions จะถูกแทนที่ด้วยค่าที่เกี่ยวข้อง ผลลัพธ์เขียนเป็นภาษาpath อาร์กิวเมนต์ executable ที่ไม่บังคับ (ค่าเริ่มต้นคือ true) สามารถเปิดหรือปิดบิตสั่งการได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่ต้องการสร้างโดยสัมพันธ์กับไดเรกทอรีที่เก็บ
template string หรือ Label หรือ path ต้องระบุ
เส้นทางไปยังไฟล์เทมเพลต
substitutions ค่าเริ่มต้นคือใช้แทน {}
รายการเมื่อขยายเทมเพลต
executable ค่าเริ่มต้นคือ True
ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น true โดยค่าเริ่มต้น

ไหน

path repository_ctx.which(program)

แสดงผลเส้นทางของโปรแกรมที่เกี่ยวข้องหรือ ไม่มี หากไม่มีโปรแกรมดังกล่าวในเส้นทาง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
program ต้องระบุ
โปรแกรมเพื่อค้นหาในเส้นทาง
อาจส่งคืน None

workspace_root

path repository_ctx.workspace_root

เส้นทางไปยังพื้นที่ทำงานรูทของการเรียกใช้ bazel