โมดูลมีสิทธิ์

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

สมาชิก

ดาวน์โหลด

struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string; or Iterable of strings; ต้องระบุ
URL ของมิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output string; or Label; or path; default = ''
path to the output file, relative to the repository directory.
sha256 ค่าเริ่มต้น = ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 เป็นความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่เสถียร การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง
executable default = False
set the executable flag on the created file, false by default.
allow_fail default = False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่แสดงแทนที่จะแสดงข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สําเร็จ
canonical_id default = ''
หากตั้งค่าไว้ ระบบจะจำกัด Hit ของแคชไว้เฉพาะในกรณีที่มีการเพิ่มไฟล์ลงในแคชด้วยรหัสแคนนอนิกเดียวกัน
auth default = {}
Dict ที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ
integrity default = ''
ค่าการตรวจสอบผลรวมที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับการตรวจสอบผลรวมของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่เสถียร การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง

download_and_extract

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

ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ แตกไฟล์ และแสดงผลสตรัคเจอร์ที่มี success ซึ่งเป็น Flag ที่เป็น 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", ".ar" หรือ ".deb" ที่นี่อย่างชัดเจน
stripPrefix default = ''
คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดออกจากไฟล์ที่ดึงมาได้
allow_fail default = False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่แสดงแทนที่จะแสดงข้อผิดพลาดสำหรับการดาวน์โหลดที่ไม่สําเร็จ
canonical_id default = ''
หากตั้งค่าไว้ ระบบจะจำกัด Hit ของแคชไว้เฉพาะในกรณีที่มีการเพิ่มไฟล์ลงในแคชด้วยรหัสแคนนอนิกเดียวกัน
auth default = {}
Dict ที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สําหรับ URL บางรายการ
integrity default = ''
ค่าการตรวจสอบผลรวมที่คาดไว้ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับการตรวจสอบผลรวมของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบผลรวมเป็นความเสี่ยงด้านความปลอดภัย เนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง ในกรณีที่ดีที่สุด การละเว้นช่องนี้จะทำให้บิลด์ของคุณไม่เสถียร การตั้งค่านี้ไม่บังคับ แต่จะช่วยให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง
rename_files default = {}
คำสั่ง (ไม่บังคับ) ที่ระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรซึ่งมีชื่อตรงกับคีย์เป็นค่านั้นๆ ก่อนที่จะปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อแตกไฟล์ที่เก็บซึ่งมีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแตกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

ดำเนินการ

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
arguments required
ลิสต์อาร์กิวเมนต์ โดยองค์ประกอบแรกควรเป็นเส้นทางไปยังโปรแกรมที่จะเรียกใช้
timeout default = 600
ระยะเวลาสูงสุดของคําสั่งเป็นวินาที (ค่าเริ่มต้นคือ 600 วินาที)
environment default = {}
บังคับให้ตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างเพื่อส่งไปยังกระบวนการ
quiet default = True
หากควรพิมพ์ stdout และ stderr ไปยังเทอร์มินัล
working_directory default = ""
Working directory for command execution. อาจเป็นค่าสัมพัทธ์กับรูทของที่เก็บหรือค่าสัมบูรณ์ก็ได้

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)

สร้างออบเจ็กต์ทึบแสงที่แสดงผลจากฟังก์ชันการใช้งานของส่วนขยายโมดูลเพื่อระบุข้อมูลเมตาเกี่ยวกับที่เก็บข้อมูลที่ส่วนขยายสร้างขึ้นให้กับ Bazel

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
root_module_direct_deps sequence of strings; or string; or None; default = None
ชื่อที่เก็บข้อมูลที่ส่วนขยายถือว่ามีความเกี่ยวข้องโดยตรงกับโมดูลรูท หากโมดูลรูทนําเข้าที่เก็บข้อมูลเพิ่มเติมหรือไม่นําเข้าที่เก็บเหล่านี้ทั้งหมดผ่าน use_repo ทาง Bazel จะพิมพ์คําเตือนและคําสั่งแก้ไขเมื่อประเมินส่วนขยาย

หากมีการระบุ root_module_direct_deps หรือ root_module_direct_dev_deps รายการใดรายการหนึ่ง จะต้องระบุอีกรายการด้วย รายการที่ระบุโดยพารามิเตอร์ 2 รายการนี้ต้องไม่ซ้ำกัน

คุณสามารถตั้งค่า root_module_direct_deps หรือ root_module_direct_dev_deps เป็นค่าพิเศษ "all" ได้เพียงค่าเดียว ซึ่งระบบจะถือว่าค่าดังกล่าวเป็นรายการที่มีชื่อของที่เก็บข้อมูลทั้งหมดที่ส่วนขยายสร้างขึ้น

root_module_direct_dev_deps sequence of strings; or string; or None; default = None
ชื่อที่เก็บข้อมูลที่ส่วนขยายถือว่าเป็นแหล่งที่มาของนักพัฒนาซอฟต์แวร์โดยตรงของโมดูลรูท หากโมดูลรูทนําเข้าที่เก็บข้อมูลเพิ่มเติมหรือไม่นําเข้าที่เก็บเหล่านี้ทั้งหมดผ่าน use_repo ในพร็อกซีส่วนขยายที่สร้างด้วย use_extension(..., dev_dependency = True) ทาง Bazel จะพิมพ์คําเตือนและคําสั่งแก้ไขเมื่อประเมินส่วนขยาย

หากมีการระบุ root_module_direct_deps หรือ root_module_direct_dev_deps รายการใดรายการหนึ่ง จะต้องระบุอีกรายการด้วย รายการที่ระบุโดยพารามิเตอร์ทั้งสองนี้ต้องไม่มีรายการร่วมกัน

คุณสามารถตั้งค่า root_module_direct_deps หรือ root_module_direct_dev_deps เป็นค่าพิเศษ "all" ได้เพียงค่าเดียว ซึ่งระบบจะถือว่าค่าดังกล่าวเป็นรายการที่มีชื่อของที่เก็บข้อมูลทั้งหมดที่ส่วนขยายสร้างขึ้น

ไฟล์

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string; or Label; or path; ต้องระบุ
เส้นทางของไฟล์ที่จะสร้างซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ
content default = ''
เนื้อหาของไฟล์ที่จะสร้าง โดยค่าเริ่มต้นจะว่างเปล่า
executable default = True
set the executable flag on the created file, true by default.
legacy_utf8 default = True
เข้ารหัสเนื้อหาไฟล์เป็น UTF-8 โดยค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนำพารามิเตอร์นี้ออก

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

แสดงผลว่ามีการระบุแท็กที่ระบุในผลลัพธ์ของการเรียกใช้ use_extension ด้วย devDependency = True หรือไม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
tag bazel_module_tag; ต้องระบุ
แท็กที่ได้มาจาก bazel_module.tags

is_isolated

bool module_ctx.is_isolated

การใช้งานส่วนขยายนี้ระบุ isolate = True ไว้หรือไม่ และแยกออกจากการใช้งานอื่นๆ ทั้งหมดหรือไม่

โมดูล

list module_ctx.modules

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

os

repository_os module_ctx.os

โครงสร้างสําหรับเข้าถึงข้อมูลจากระบบ

เส้นทาง

path module_ctx.path(path)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string; or Label; or path; ต้องระบุ
string, label or path from which to create a path from

อ่าน

string module_ctx.read(path)

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

พารามิเตอร์

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

report_progress

None module_ctx.report_progress(status='')

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
status string; default = ''
string describing the current status of the fetch progress

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

โมดูลรูทใช้ส่วนขยายนี้เป็นข้อกําหนดที่ไม่เกี่ยวข้องกับนักพัฒนาซอฟต์แวร์หรือไม่

ไหน

path module_ctx.which(program)

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

พารามิเตอร์

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