implementation
เมื่อสร้างกฎที่เก็บ
สมาชิก
- แอตทริบิวต์
- ลบ
- ดาวน์โหลด
- ดาวน์โหลดแล้วแยกข้อมูล
- ดําเนินการ
- แยก
- ไฟล์
- name
- ระบบปฏิบัติการ
- แพตช์
- เส้นทาง
- อ่าน
- รายงานความคืบหน้า
- ลิงก์สัญลักษณ์
- เทมเพลต
- ซึ่ง
- รากพื้นที่ทํางาน
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
|
default = '' แฮช SHA-256 ที่คาดหวังของไฟล์ที่ดาวน์โหลดมา ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเพราะไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การไม่ใส่ฟิลด์นี้อย่างดีที่สุดจะทําให้งานสร้างของคุณไม่เป็นไปในทางที่ดีขึ้น การดําเนินการนี้ไม่บังคับเพื่อทําให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนการจัดส่ง |
executable
|
default = False ตั้งค่าการติดธงปฏิบัติการในไฟล์ที่สร้างไว้ ซึ่งเป็นเท็จโดยค่าเริ่มต้น |
allow_fail
|
default = False หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนการเพิ่มข้อผิดพลาดสําหรับการดาวน์โหลดที่ไม่สําเร็จ |
canonical_id
|
ค่าเริ่มต้น = '' หากตั้งค่า ให้จํากัด Hit แคชไว้สําหรับกรณีที่มีการเพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน |
auth
|
default = {} คําสืบค้นที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ |
integrity
|
default = '' ต้องการ checksum ของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ซึ่งต้องตรงกับเช็คซัมของไฟล์ที่ดาวน์โหลด การละเว้น checksum อาจทําให้ไฟล์ระยะไกลเปลี่ยนแปลงได้ การไม่ใส่ฟิลด์นี้อย่างดีที่สุดจะทําให้งานสร้างของคุณไม่เป็นไปในทางที่ดีขึ้น การดําเนินการนี้ไม่บังคับเพื่อทําให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนการจัดส่ง |
ดาวน์โหลด_และ_แยก
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
|
default = '' แฮช SHA-256 ที่คาดหวังของไฟล์ที่ดาวน์โหลดมา ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเพราะไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การไม่ใส่ฟิลด์นี้อย่างดีที่สุดจะทําให้งานสร้างของคุณไม่เป็นไปในทางที่ดีขึ้น การดําเนินการนี้ไม่บังคับเพื่อทําให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนการจัดส่ง หากมี ระบบจะตรวจสอบแคชของที่เก็บสําหรับไฟล์ที่มีแฮชที่ระบุก่อน ระบบจะพยายามดาวน์โหลดเฉพาะกรณีที่ไม่พบไฟล์ที่อยู่ในแคช เมื่อดาวน์โหลดเสร็จเรียบร้อย ระบบจะเพิ่มไฟล์ลงในแคช |
type
|
default = '' ประเภทที่เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ระบบจะกําหนดประเภทการเก็บถาวรจากนามสกุลไฟล์ของ URL หากไฟล์ไม่มีนามสกุล คุณจะระบุ "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" หรือ ".deb" ได้ที่นี่ |
stripPrefix
|
default = '' คํานําหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยกออกมา ที่เก็บถาวรหลายรายการมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดอยู่ในที่เก็บถาวร ไม่จําเป็นต้องระบุคํานําหน้านี้ซ้ําใน build_file ช่องนี้สามารถใช้ในการตัดสตริงออกจากไฟล์ที่มีการแตกไฟล์
|
allow_fail
|
default = False หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนการเพิ่มข้อผิดพลาดสําหรับการดาวน์โหลดที่ไม่สําเร็จ |
canonical_id
|
ค่าเริ่มต้น = '' หากตั้งค่า ให้จํากัด Hit แคชไว้สําหรับกรณีที่มีการเพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน |
auth
|
default = {} คําสืบค้นที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ |
integrity
|
default = '' ต้องการ checksum ของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ซึ่งต้องตรงกับเช็คซัมของไฟล์ที่ดาวน์โหลด การละเว้น 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
|
default = {} กําหนดให้ตัวแปรสภาพแวดล้อมบางรายการได้รับการส่งต่อไปยังกระบวนการ |
quiet
|
default = True หากมีการพิมพ์ stdout และ stderr ที่เครื่องอ่าน |
working_directory
|
default = "" ไดเรกทอรีที่ใช้งานได้สําหรับการเรียกใช้คําสั่ง สามารถสัมพันธ์กับรากของที่เก็บหรือค่าสัมบูรณ์ |
แยก
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
|
ค่าเริ่มต้น = {} คําสั่งแบบบังคับ ระบุไฟล์ที่จะเปลี่ยนชื่อในระหว่างการแยก ระบบจะเก็บถาวรรายการที่มีชื่อตรงกับคีย์ทุกประการเป็นค่า ก่อนจะมีการปรับนําหน้าไดเรกทอรี สามารถใช้เพื่อแยกที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกเป็นเส้นทางเดียวกันในระบบไฟล์ที่ไม่คํานึงถึงตัวพิมพ์เล็กและใหญ่ |
ไฟล์
None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)สร้างไฟล์ในไดเรกทอรีที่เก็บซึ่งมีเนื้อหาที่ระบุ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string; or Label; or path ; ต้องระบุเส้นทางของไฟล์ที่จะสร้างเมื่อเทียบกับไดเรกทอรีที่เก็บ |
content
|
default = '' เนื้อหาของไฟล์ที่จะสร้างจะว่างเปล่าโดยค่าเริ่มต้น |
executable
|
default = True ตั้งค่าการติดธงสั่งการในไฟล์ที่สร้างขึ้น ซึ่งมีค่าเป็น true ตามค่าเริ่มต้น |
legacy_utf8
|
default = True เข้ารหัสเนื้อหาของไฟล์เป็น UTF-8 โดยค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนําพารามิเตอร์นี้ออก |
name
string repository_ctx.nameชื่อที่เก็บภายนอกที่กฎนี้สร้าง
ระบบปฏิบัติการ
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 ต้องมีเส้นทางของไฟล์ที่จะอ่าน |
รายงานความคืบหน้า
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
|
default = True ตั้งค่าการติดธงสั่งการในไฟล์ที่สร้างขึ้น ซึ่งมีค่าเป็น true ตามค่าเริ่มต้น |
ไหน
path repository_ctx.which(program)แสดงผลเส้นทางของโปรแกรมที่เกี่ยวข้องหรือไม่มี หากไม่มีโปรแกรมดังกล่าวในเส้นทาง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
program
|
จําเป็นต้องมี โปรแกรมเพื่อค้นหาในเส้นทาง |
None
พื้นที่ทํางาน
path repository_ctx.workspace_rootเส้นทางไปยังพื้นที่ทํางานรากของการเรียกใช้ Bazel