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

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

สมาชิก

attr

struct repository_ctx.attr

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

ลบ

bool repository_ctx.delete(path)

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

พารามิเตอร์

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

ดาวน์โหลด

unknown repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ และส่งคืนโครงสร้างที่มี success ซึ่งเป็นแฟล็กที่ค่าเป็น true หากดาวน์โหลดเสร็จสมบูรณ์ และหากดาวน์โหลดสำเร็จ จะส่งคืนแฮชของไฟล์ที่มีฟิลด์ sha256 และ integrity เมื่อผู้ใช้ระบุ sha256 หรือ integrity เราขอแนะนำอย่างยิ่งให้ตั้งค่า canonical_id อย่างชัดเจน เช่น get_default_canonical_id

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string หรือ Iterable ของ string ต้องระบุ
รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output สตริง หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไฟล์เอาต์พุตที่เกี่ยวข้องกับไดเรกทอรีที่เก็บ
sha256 string; ค่าเริ่มต้นคือ ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 ถือเป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง หากระบุไว้ ระบบจะตรวจสอบแคชของที่เก็บก่อนเพื่อหาไฟล์ที่มีแฮชที่ระบุ และจะพยายามดาวน์โหลดก็ต่อเมื่อไม่พบไฟล์ในแคช หลังจากดาวน์โหลดสำเร็จแล้ว ระบบจะเพิ่มไฟล์ลงในแคช
executable bool; ค่าเริ่มต้นคือ False
ตั้งค่าสถานะที่เรียกใช้งานได้ในไฟล์ที่สร้างขึ้น โดยค่าเริ่มต้นจะเป็น false
allow_fail bool; ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนที่จะแจ้งข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ
canonical_id string; ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการเข้าชมที่แคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชด้วยรหัส Canonical เดียวกัน โดยค่าเริ่มต้น การแคชจะใช้ผลรวมตรวจสอบ (sha256 หรือ integrity)
auth dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
headers dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุส่วนหัว http สำหรับ URL ทั้งหมด
integrity string; ค่าเริ่มต้นคือ ''
ผลรวมตรวจสอบที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ต้องตรงกับผลรวมตรวจสอบของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง หากระบุไว้ ระบบจะตรวจสอบแคชที่เก็บก่อนเพื่อหาไฟล์ที่มีผลรวมตรวจสอบที่ระบุ และจะพยายามดาวน์โหลดก็ต่อเมื่อไม่พบไฟล์ในแคช หลังจากดาวน์โหลดสำเร็จแล้ว ระบบจะเพิ่มไฟล์ลงในแคช
block bool; ค่าเริ่มต้นคือ True
หากตั้งค่าเป็น false การเรียกจะแสดงผลทันที และแทนที่จะเป็นค่าที่แสดงผลปกติ การเรียกจะแสดงผลโทเค็นที่มีเมธอดเดียวคือ wait() ซึ่งจะบล็อกจนกว่าการดาวน์โหลดจะเสร็จสิ้นและแสดงผลค่าที่แสดงผลตามปกติหรือส่งข้อยกเว้นตามปกติ

download_and_extract

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', strip_prefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ แยกไฟล์ และแสดงผลโครงสร้างที่มี success ซึ่งเป็นแฟล็กที่แสดงเป็น true หากดาวน์โหลดเสร็จสมบูรณ์ และหากดาวน์โหลดสำเร็จ จะแสดงแฮชของไฟล์ที่มีฟิลด์ sha256 และ integrity เมื่อผู้ใช้ระบุ sha256 หรือ integrity เราขอแนะนำอย่างยิ่งให้ตั้งค่า canonical_id อย่างชัดเจน เช่น get_default_canonical_id

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string หรือ Iterable ของ string ต้องระบุ
รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output string หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไดเรกทอรีที่จะแตกไฟล์เก็บถาวร โดยสัมพันธ์กับไดเรกทอรีที่เก็บ
sha256 string; ค่าเริ่มต้นคือ ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 ถือเป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง หากระบุไว้ ระบบจะตรวจสอบแคชของที่เก็บก่อนเพื่อหาไฟล์ที่มีแฮชที่ระบุ และจะพยายามดาวน์โหลดก็ต่อเมื่อไม่พบไฟล์ในแคช หลังจากดาวน์โหลดสำเร็จแล้ว ระบบจะเพิ่มไฟล์ลงในแคช
type string; ค่าเริ่มต้นคือ ''
ประเภทที่เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ระบบจะกำหนดประเภทที่เก็บถาวรจากส่วนขยายของไฟล์ใน URL หากไฟล์ไม่มีนามสกุล คุณสามารถระบุ "zip", "jar", "war", "aar", "nupkg", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" หรือ ".deb" ที่นี่ได้
strip_prefix string; ค่าเริ่มต้นคือ ''
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยกออกมา ที่เก็บถาวรจำนวนมากมี ไดเรกทอรีระดับบนสุดซึ่งมีไฟล์ทั้งหมดในที่เก็บถาวร ฟิลด์นี้ใช้เพื่อนำคำนำหน้านี้ออกจากไฟล์ที่แยกออกมาได้แทนที่จะต้อง ระบุคำนำหน้านี้ซ้ำๆ ใน build_file

เพื่อความเข้ากันได้ คุณอาจใช้พารามิเตอร์นี้ภายใต้ชื่อที่เลิกใช้งานแล้ว stripPrefix ได้ด้วย

allow_fail bool; ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่ส่งคืนแทนที่จะแจ้งข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สำเร็จ
canonical_id string; ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการเข้าชมที่แคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชด้วยรหัส Canonical เดียวกัน โดยค่าเริ่มต้น การแคชจะใช้ผลรวมตรวจสอบ" (sha256 หรือ integrity)
auth dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
headers dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุส่วนหัว http สำหรับ URL ทั้งหมด
integrity string; ค่าเริ่มต้นคือ ''
ผลรวมตรวจสอบที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ต้องตรงกับผลรวมตรวจสอบของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นฟิลด์นี้จะทำให้บิลด์ของคุณไม่เป็นแบบเฮอร์เมติก ไม่บังคับเพื่อช่วยให้การพัฒนาเป็นไปได้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง หากระบุไว้ ระบบจะตรวจสอบแคชที่เก็บก่อนเพื่อหาไฟล์ที่มีผลรวมตรวจสอบที่ระบุ และจะพยายามดาวน์โหลดก็ต่อเมื่อไม่พบไฟล์ในแคช หลังจากดาวน์โหลดสำเร็จแล้ว ระบบจะเพิ่มไฟล์ลงในแคช
rename_files dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการแยก รายการที่เก็บถาวรซึ่งมีชื่อตรงกับคีย์จะได้รับการเปลี่ยนชื่อเป็นค่าก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งใช้เพื่อแยกไฟล์เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้

ดำเนินการ

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

เรียกใช้คำสั่งที่ระบุโดยรายการอาร์กิวเมนต์ เวลาในการดำเนินการของคำสั่งจะจำกัดโดย timeout (เป็นวินาที ค่าเริ่มต้นคือ 600 วินาที) เมธอดนี้จะแสดงผลโครงสร้าง exec_result ที่มีเอาต์พุตของคำสั่ง คุณใช้แผนที่ environment เพื่อลบล้างตัวแปรสภาพแวดล้อมบางอย่างที่จะส่งไปยังกระบวนการได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
arguments sequence; required
List of arguments, the first element should be the path to the program to execute.
timeout int; ค่าเริ่มต้นคือ 600
ระยะเวลาสูงสุดของคำสั่งเป็นวินาที (ค่าเริ่มต้นคือ 600 วินาที)
environment dict; ค่าเริ่มต้นคือ {}
บังคับให้ตั้งค่าตัวแปรสภาพแวดล้อมบางรายการเพื่อส่งไปยังกระบวนการ ค่าอาจเป็น None เพื่อนำตัวแปรสภาพแวดล้อมออก
quiet bool; ค่าเริ่มต้นคือ True
หากควรพิมพ์ stdout และ stderr ไปยังเทอร์มินัล
working_directory string; ค่าเริ่มต้นคือ ""
ไดเรกทอรีการทำงานสำหรับการเรียกใช้คำสั่ง อาจเป็นแบบสัมพัทธ์กับรูทของที่เก็บหรือแบบสัมบูรณ์ก็ได้ ค่าเริ่มต้นคือรูทของที่เก็บ

แยก

None repository_ctx.extract(archive, output='', strip_prefix='', *, rename_files={}, watch_archive='auto')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
archive string หรือ Label หรือ path required
เส้นทางไปยังที่เก็บถาวรที่จะแตกไฟล์ ซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ
output string หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไดเรกทอรีที่จะแตกไฟล์เก็บถาวร ซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ
strip_prefix string ค่าเริ่มต้นคือ ''
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยกออกมา ที่เก็บถาวรจำนวนมากมี ไดเรกทอรีระดับบนสุดซึ่งมีไฟล์ทั้งหมดในที่เก็บถาวร ฟิลด์นี้ใช้เพื่อนำคำนำหน้านี้ออกจากไฟล์ที่แยกออกมาได้ แทนที่จะต้องระบุคำนำหน้านี้ซ้ำๆ ใน build_file

เพื่อความเข้ากันได้ คุณอาจใช้พารามิเตอร์นี้ภายใต้ชื่อที่เลิกใช้งานแล้ว stripPrefix ได้ด้วย

rename_files dict; ค่าเริ่มต้นคือ {}
พจนานุกรมที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการแยก รายการที่เก็บถาวรซึ่งมีชื่อตรงกับคีย์จะได้รับการเปลี่ยนชื่อเป็นค่าก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งใช้เพื่อแยกไฟล์เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ได้
watch_archive string; ค่าเริ่มต้นคือ 'auto'
ระบุว่าจะดูไฟล์ที่เก็บถาวรหรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" จะเทียบเท่ากับการเรียกใช้เมธอด watch() ทันที ส่วนการส่งค่า "no" จะไม่พยายามดูไฟล์ และการส่งค่า "auto" จะพยายามดูไฟล์เฉพาะเมื่อทำได้อย่างถูกต้องตามกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ watch())

ไฟล์

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

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

พารามิเตอร์

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

getenv

string repository_ctx.getenv(name, default=None)

แสดงค่าของตัวแปรสภาพแวดล้อม name เป็นสตริงหากมี หรือ default หากไม่มี

เมื่อสร้างทีละรายการ การเปลี่ยนแปลงค่าของตัวแปรที่ตั้งชื่อโดย name จะทําให้ระบบดึงข้อมูลที่เก็บนี้อีกครั้ง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
name สตริง ต้องระบุ
ชื่อของตัวแปรสภาพแวดล้อมที่ต้องการ
default สตริง หรือ 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')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
patch_file string หรือ Label หรือ path ต้องระบุ
ไฟล์แพตช์ที่จะใช้ โดยอาจเป็นป้ายกำกับ เส้นทางสัมพัทธ์ หรือเส้นทางสัมบูรณ์ หากเป็นเส้นทางแบบสัมพัทธ์ ระบบจะเปลี่ยนเส้นทางไปยังไดเรกทอรีที่เก็บ
strip int; ค่าเริ่มต้นคือ 0
ตัดส่วนประกอบนำหน้าตามจำนวนที่ระบุออกจากชื่อไฟล์
watch_patch string; ค่าเริ่มต้นคือ 'auto'
ระบุว่าจะดูไฟล์แพตช์หรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" จะเทียบเท่ากับการเรียกใช้เมธอด watch() ทันที ส่วนการส่งค่า "no" จะไม่พยายามดูไฟล์ และการส่งค่า "auto" จะพยายามดูไฟล์เฉพาะเมื่อทำได้อย่างถูกต้องตามกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ watch())

เส้นทาง

path repository_ctx.path(path)

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

พารามิเตอร์

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

อ่าน

string repository_ctx.read(path, *, watch='auto')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่จะอ่าน
watch string; ค่าเริ่มต้นคือ 'auto'
ระบุว่าจะดูไฟล์หรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" จะเทียบเท่ากับการเรียกใช้เมธอด watch() ทันที ส่วนการส่งค่า "no" จะไม่พยายามดูไฟล์ และการส่งค่า "auto" จะพยายามดูไฟล์เฉพาะเมื่อทำได้อย่างถูกต้องตามกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ watch())

เปลี่ยนชื่อ

None repository_ctx.rename(src, dst)

เปลี่ยนชื่อไฟล์หรือไดเรกทอรีจาก src เป็น dst ระบบจะสร้างไดเรกทอรีหลักตามที่จำเป็น ล้มเหลวหากมีเส้นทางปลายทางอยู่แล้ว ทั้ง 2 เส้นทางต้องอยู่ในที่เก็บ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
src สตริง หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์หรือไดเรกทอรีที่มีอยู่ซึ่งจะเปลี่ยนชื่อ โดยสัมพันธ์ กับไดเรกทอรีที่เก็บ
dst สตริง หรือ Label หรือ path ต้องระบุ
ชื่อใหม่ที่จะเปลี่ยนชื่อไฟล์หรือไดเรกทอรีให้ สัมพันธ์กับไดเรกทอรีของที่เก็บ

report_progress

None repository_ctx.report_progress(status='')

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

พารามิเตอร์

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

None repository_ctx.symlink(target, link_name)

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

พารามิเตอร์

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

เทมเพลต

None repository_ctx.template(path, template, substitutions={}, executable=True, *, watch_template='auto')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path สตริง หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่จะสร้าง ซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ
template string หรือ Label หรือ path ต้องระบุ
เส้นทางไปยังไฟล์เทมเพลต
substitutions dict; ค่าเริ่มต้นคือ {}
การแทนที่ที่จะทำเมื่อขยายเทมเพลต
executable bool; ค่าเริ่มต้นคือ True
ตั้งค่าสถานะที่เรียกใช้งานได้ในไฟล์ที่สร้างขึ้น โดยค่าเริ่มต้นจะเป็นจริง
watch_template string; ค่าเริ่มต้นคือ 'auto'
จะดูไฟล์เทมเพลตหรือไม่ อาจเป็นสตริง "yes", "no" หรือ "auto" การส่งค่า "yes" จะเทียบเท่ากับการเรียกใช้เมธอด watch() ทันที ส่วนการส่งค่า "no" จะไม่พยายามดูไฟล์ และการส่งค่า "auto" จะพยายามดูไฟล์เฉพาะเมื่อทำได้อย่างถูกต้องตามกฎหมายเท่านั้น (ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ watch())

นาฬิกา

None repository_ctx.watch(path)

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

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

โปรดทราบว่าการพยายามดูเส้นทางภายใน repo ที่กำลังดึงข้อมูล หรือภายในไดเรกทอรีการทำงานของส่วนขยายโมดูลปัจจุบัน จะทำให้เกิดข้อผิดพลาด ส่วนขยายโมดูลที่พยายามดูเส้นทางนอกพื้นที่ทำงาน Bazel ปัจจุบันจะทำให้เกิดข้อผิดพลาดด้วย

พารามิเตอร์

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

watch_tree

None repository_ctx.watch_tree(path)

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

โปรดทราบว่าการพยายามดูเส้นทางภายในที่เก็บที่กำลังดึงข้อมูลจะทำให้เกิดข้อผิดพลาด

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของโครงสร้างไดเรกทอรีที่จะดู

ไหน

path repository_ctx.which(program)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
program string; required
Program to find in the path.
อาจส่งคืน None

workspace_root

path repository_ctx.workspace_root

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