บริบทของกฎที่เก็บที่มีฟังก์ชันตัวช่วยและข้อมูลเกี่ยวกับแอตทริบิวต์ คุณจะได้รับออบเจ็กต์ repository_ctx เป็นอาร์กิวเมนต์ของฟังก์ชัน implementation
เมื่อสร้างกฎของที่เก็บ
สมาชิก
- attr
- ลบ
- download
- download_and_extract
- execute
- extract
- file
- เกเตนฟ
- name
- os
- patch
- เส้นทาง
- อ่าน
- report_progress
- symlink
- template
- นาฬิกาข้อมือ
- watch_tree
- ซึ่ง
- workspace_root
attr
struct repository_ctx.attr
ลบ
bool repository_ctx.delete(path)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string หรือ path
ต้องระบุ เส้นทางของไฟล์ที่จะลบโดยสัมพันธ์กับไดเรกทอรีที่เก็บ หรือ Absolute อาจเป็นเส้นทางหรือสตริงก็ได้ |
ดาวน์โหลด
unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
ซึ่งเป็น Flag ที่เป็น true
หากการดาวน์โหลดเสร็จสมบูรณ์ และหากสำเร็จ ระบบจะแสดงแฮชของไฟล์ที่มีช่อง sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
สตริง หรือ Iterable ของ สตริง
ต้องระบุ รายการ URL มิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ค่าเริ่มต้นคือ '' เส้นทางไปยังไฟล์เอาต์พุตซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
sha256
|
ค่าเริ่มต้นคือ '' แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่เสถียร การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง |
executable
|
ค่าเริ่มต้นคือ False ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น "เท็จ" โดยค่าเริ่มต้น |
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่าไว้ ระบบจะระบุข้อผิดพลาดในค่าที่แสดงแทนที่จะแสดงข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สําเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากตั้งค่าไว้ ระบบจะจำกัด Hit ของแคชไว้เฉพาะในกรณีที่มีการเพิ่มไฟล์ลงในแคชด้วยรหัสแคนนอนิกเดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ |
headers
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุส่วนหัว HTTP สําหรับ URL ทั้งหมด |
integrity
|
ค่าเริ่มต้นคือ '' checksum ที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับการตรวจสอบผลรวมของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่เสถียร การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง |
block
|
ค่าเริ่มต้นจะเป็น True หากตั้งค่าเป็น "เท็จ" การเรียกใช้จะแสดงผลทันทีและแสดงผลเป็นโทเค็นที่มีเมธอดเดียว ซึ่งก็คือWait() ซึ่งบล็อกไว้จนกว่าการดาวน์โหลดจะเสร็จสมบูรณ์ แล้วแสดงผลค่าการส่งกลับมาตามปกติหรือมีการส่งตามปกติ |
download_and_extract
struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
แฟล็กซึ่งเป็น true
หากดาวน์โหลดสำเร็จ และหากดาวน์โหลดสำเร็จ จะแฮชของไฟล์ที่มีช่อง sha256
และ integrity
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
url
|
สตริง หรือ Iterable ของ สตริง
ต้องระบุ รายการ URL มิเรอร์ที่อ้างอิงไฟล์เดียวกัน |
output
|
สตริง หรือ ป้ายกำกับ หรือ เส้นทาง
ค่าเริ่มต้นคือ '' เส้นทางไปยังไดเรกทอรีที่จะแตกไฟล์เก็บถาวร โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
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" ได้ที่นี่ |
stripPrefix
|
ค่าเริ่มต้นคือ '' ซึ่งเป็นคำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร ฟิลด์นี้ใช้เพื่อตัดคำนำหน้านี้ออกจากไฟล์ที่แตกไฟล์ได้โดยไม่ต้องระบุคำนำหน้านี้ซ้ำๆ ใน build_file
|
allow_fail
|
ค่าเริ่มต้นคือ False หากตั้งค่าไว้ ระบบจะระบุข้อผิดพลาดในค่าที่แสดงแทนที่จะแสดงข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สําเร็จ |
canonical_id
|
ค่าเริ่มต้นคือ '' หากตั้งค่าไว้ ระบบจะจำกัด Hit ของแคชไว้เฉพาะในกรณีที่มีการเพิ่มไฟล์ลงในแคชด้วยรหัสแคนนอนิกเดียวกัน |
auth
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ |
headers
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุส่วนหัว HTTP สําหรับ URL ทั้งหมด |
integrity
|
ค่าเริ่มต้นคือ '' ค่าการตรวจสอบผลรวมที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับการตรวจสอบผลรวมของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง |
rename_files
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการแตกไฟล์ ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อแตกไฟล์ที่เก็บซึ่งมีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแตกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
ดำเนินการ
exec_result repository_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
|
ค่าเริ่มต้นคือ "" ค่าเริ่มต้นสำหรับไดเรกทอรีการทำงาน อาจเป็นค่าสัมพัทธ์กับรูทของที่เก็บหรือค่าสัมบูรณ์ก็ได้ |
ดึงข้อมูล
None
repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
archive
|
สตริง หรือ ป้ายกำกับ หรือ เส้นทาง
ต้องระบุ เส้นทางไปยังไฟล์เก็บถาวรที่จะแตกไฟล์ โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
output
|
สตริง หรือ ป้ายกำกับ หรือ เส้นทาง
ค่าเริ่มต้นคือ '' เส้นทางไปยังไดเรกทอรีที่จะแตกไฟล์เก็บถาวร โดยสัมพันธ์กับไดเรกทอรีที่เก็บ |
stripPrefix
|
ค่าเริ่มต้นคือ '' คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร ฟิลด์นี้ใช้เพื่อตัดคำนำหน้านี้ออกจากไฟล์ที่แตกไฟล์ได้โดยไม่ต้องระบุคำนำหน้านี้ซ้ำๆ ใน build_file
|
rename_files
|
ค่าเริ่มต้นคือ {} Dict ที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการแตกไฟล์ ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรซึ่งมีชื่อตรงกับคีย์เป็นค่านั้นๆ ก่อนที่จะปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อแตกไฟล์ที่เก็บซึ่งมีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแตกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ |
watch_archive
|
ค่าเริ่มต้นคือ 'auto' ไม่ว่าจะเฝ้าดูไฟล์ที่เก็บถาวรหรือไม่ อาจเป็นสตริง "yes" "no" หรือ "auto" การส่งค่า "yes" เทียบเท่ากับการเรียกใช้เมธอด watch() ทันที การส่งค่า "no" จะไม่พยายามเฝ้าดูไฟล์ การส่งค่า "auto" จะพยายามเฝ้าดูไฟล์ก็ต่อเมื่อดำเนินการได้อย่างถูกกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมในเอกสาร watch() )
|
ไฟล์
None
repository_ctx.file(path, content='', executable=True, legacy_utf8=True)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ต้องระบุ เส้นทางของไฟล์ที่จะสร้างซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
content
|
ค่าเริ่มต้นคือ '' เนื้อหาของไฟล์ที่จะสร้าง ซึ่งจะว่างเปล่าโดยค่าเริ่มต้น |
executable
|
ค่าเริ่มต้นคือ True ตั้งค่า Flag ที่ใช้เรียกใช้ได้ในไฟล์ที่สร้าง โดยค่าเริ่มต้นจะเป็น True |
legacy_utf8
|
ค่าเริ่มต้นคือ True เข้ารหัสเนื้อหาไฟล์เป็น UTF-8 โดยค่าเริ่มต้นจะเป็น "จริง" เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนําพารามิเตอร์นี้ออก |
getenv
string repository_ctx.getenv(name, default=None)
name
เป็นสตริงหากมี หรือ default
หากไม่มีเมื่อสร้างแบบเพิ่มทีละน้อย การเปลี่ยนแปลงค่าของตัวแปรที่มีชื่อตาม name
จะทําให้ระบบดึงข้อมูลพื้นที่เก็บข้อมูลนี้อีกครั้ง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
string;
ต้องระบุ ชื่อของตัวแปรสภาพแวดล้อมที่ต้องการ |
default
|
string หรือ None
ค่าเริ่มต้นคือ None ค่าเริ่มต้นที่จะแสดงผลหากไม่พบ "name" |
None
ชื่อ
string repository_ctx.name
os
repository_os repository_ctx.os
แพตช์
None
repository_ctx.patch(patch_file, strip=0, *, watch_patch='auto')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
patch_file
|
string หรือ Label หรือ path
ต้องระบุ ไฟล์แพตช์ที่จะใช้ ซึ่งอาจเป็นป้ายกํากับ เส้นทางแบบสัมพัทธ์ หรือเส้นทางสัมบูรณ์ หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะเปลี่ยนเส้นทางไปยังไดเรกทอรีที่เก็บ |
strip
|
ค่าเริ่มต้นคือ 0 ตัดจำนวนคอมโพเนนต์นำหน้าที่ระบุออกจากชื่อไฟล์ |
watch_patch
|
ค่าเริ่มต้นคือ 'auto' เพื่อติดตามไฟล์แพตช์ อาจเป็นสตริง "yes" "no" หรือ "auto" การส่งค่า "yes" เทียบเท่ากับการเรียกใช้เมธอด watch() ทันที การส่งค่า "no" จะไม่พยายามเฝ้าดูไฟล์ การส่งค่า "auto" จะพยายามเฝ้าดูไฟล์ก็ต่อเมื่อดำเนินการได้อย่างถูกกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมในเอกสาร watch() )
|
เส้นทาง
path repository_ctx.path(path)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือป้ายกํากับ หรือเส้นทาง
ต้องระบุ สตริง ป้ายกํากับ หรือเส้นทางที่จะสร้างเส้นทางจาก |
อ่าน
string repository_ctx.read(path, *, watch='auto')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
string หรือ Label หรือ path
ต้องระบุ เส้นทางของไฟล์เพื่ออ่าน |
watch
|
ค่าเริ่มต้นคือ 'auto' เลือกว่าจะดูไฟล์หรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" เทียบเท่ากับการเรียกใช้เมธอด watch() ทันที การส่งค่า "no" จะไม่พยายามเฝ้าดูไฟล์ การส่งค่า "auto" จะพยายามเฝ้าดูไฟล์ก็ต่อเมื่อดำเนินการได้อย่างถูกกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมในเอกสาร watch() )
|
report_progress
None
repository_ctx.report_progress(status='')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
status
|
สตริง
ค่าเริ่มต้นคือ '' สตริงที่อธิบายสถานะปัจจุบันของกระบวนการดึงข้อมูล |
ลิงก์สัญลักษณ์
None
repository_ctx.symlink(target, link_name)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
target
|
สตริง หรือ ป้ายกำกับ หรือ เส้นทาง
ต้องระบุ เส้นทางที่ลิงก์สัญลักษณ์ควรชี้ไป |
link_name
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ต้องระบุ เส้นทางของลิงก์สัญลักษณ์ที่จะสร้าง |
เทมเพลต
None
repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')
template
ระบบจะแทนที่ค่าที่ตรงกันแทนคีย์ substitutions
ทั้งหมดใน template
ผลลัพธ์เขียนเป็นภาษาpath
คุณสามารถตั้งค่าอาร์กิวเมนต์executable
(ค่าเริ่มต้นคือ "จริง") ที่ไม่บังคับเพื่อเปิดหรือปิดบิตที่เรียกใช้ได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ต้องระบุ เส้นทางของไฟล์ที่จะสร้างซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ |
template
|
string หรือ Label หรือ path
ต้องระบุ เส้นทางไปยังไฟล์เทมเพลต |
substitutions
|
ค่าเริ่มต้นคือ {} การแทนที่ที่จะทำเมื่อขยายเทมเพลต |
executable
|
ค่าเริ่มต้นคือ True ตั้งค่า Flag ที่ใช้เรียกใช้ได้ในไฟล์ที่สร้าง โดยค่าเริ่มต้นจะเป็น True |
watch_template
|
ค่าเริ่มต้นคือ 'auto' กำหนดว่าจะเฝ้าดูไฟล์เทมเพลตหรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" เทียบเท่ากับการเรียกใช้เมธอด watch() ทันที การส่งค่า "no" จะไม่พยายามเฝ้าดูไฟล์ การส่งค่า "auto" จะพยายามเฝ้าดูไฟล์ก็ต่อเมื่อดำเนินการได้อย่างถูกกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมในเอกสาร watch() )
|
นาฬิกา
None
repository_ctx.watch(path)
"การเปลี่ยนแปลง" รวมถึงการเปลี่ยนแปลงเนื้อหาของไฟล์ (หากเส้นทางเป็นไฟล์) หากเส้นทางเคยเป็นไฟล์แต่ตอนนี้เป็นไดเรกทอรี หรือในทางกลับกัน และหากเส้นทางเริ่มหรือหยุดมีอยู่ สิ่งที่ควรทราบคือจะไม่รวมการเปลี่ยนแปลงในไฟล์ใดๆ ในไดเรกทอรีหากเส้นทางเป็นไดเรกทอรี โปรดใช้ path.readdir()
แทน
โปรดทราบว่าการพยายามดูเส้นทางภายในที่เก็บที่กำลังดึงข้อมูลอยู่ หรือภายในไดเรกทอรีที่ใช้งานได้ของส่วนขยายโมดูลปัจจุบันจะทำให้เกิดข้อผิดพลาด ส่วนขยายโมดูลที่พยายามเฝ้าดูเส้นทางนอกพื้นที่ทํางาน Bazel ปัจจุบันก็จะทำให้เกิดข้อผิดพลาดเช่นกัน
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ต้องระบุ เส้นทางของไฟล์ที่จะเฝ้าดู |
watch_tree
None
repository_ctx.watch_tree(path)
โปรดทราบว่าการพยายามเฝ้าดูเส้นทางภายในที่ดึงข้อมูลอยู่ของรีโปจะทำให้เกิดข้อผิดพลาด
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
path
|
สตริง หรือป้ายกำกับ หรือเส้นทาง
ต้องระบุ เส้นทางของลําดับชั้นไดเรกทอรีที่จะตรวจสอบ |
ไหน
path repository_ctx.which(program)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
program
|
ต้องระบุ โปรแกรมที่จะค้นหาในเส้นทาง |
None
workspace_root
path repository_ctx.workspace_root