คุณโหลดฟังก์ชันต่อไปนี้ได้จาก @bazel_tools//tools/build_defs/repo:utils.bzl
ยูทิลิตีสำหรับการจัดการที่เก็บข้อมูลภายนอกเมื่อดึงข้อมูลแล้ว
ตั้งค่า
ยูทิลิตีเหล่านี้มีไว้เพื่อให้กฎที่เก็บข้อมูลอื่นๆ ใช้งาน โดยสามารถโหลดได้ดังนี้
load(
"@bazel_tools//tools/build_defs/repo:utils.bzl",
"workspace_and_buildfile",
"patch",
"update_attrs",
)
download_remote_files
load("@bazel//tools/build_defs/repo:utils.bzl", "download_remote_files")
download_remote_files(ctx, auth)
ฟังก์ชันยูทิลิตีสำหรับการดาวน์โหลดไฟล์ระยะไกล
กฎนี้มีไว้เพื่อให้ใช้ในฟังก์ชันการใช้งานของกฎที่เก็บข้อมูล โดยจะถือว่าพารามิเตอร์ remote_file_urls และ remote_file_integrity อยู่ใน ctx.attr
ระบบจะเขียนทับไฟล์ที่มีอยู่
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
auth |
ไม่บังคับ ค่าเริ่มต้นคือ None
พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ |
แสดงผล
พจนานุกรมที่แมปเส้นทางไฟล์กับข้อมูลการดาวน์โหลด
get_auth
load("@bazel//tools/build_defs/repo:utils.bzl", "get_auth")
get_auth(ctx, urls)
ฟังก์ชันยูทิลิตีเพื่อรับพจนานุกรมการตรวจสอบสิทธิ์ที่ถูกต้องสำหรับรายการ URL จากไฟล์ .netrc
รองรับแอตทริบิวต์ netrc และ auth_patterns ที่ไม่บังคับหากมี
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
urls |
ต้องระบุ
รายการ URL ที่จะอ่าน |
แสดงผล
พจนานุกรมการตรวจสอบสิทธิ์ที่ส่งไปยัง repository_ctx.download ได้
maybe
load("@bazel//tools/build_defs/repo:utils.bzl", "maybe")
maybe(repo_rule, name, **kwargs)
ฟังก์ชันยูทิลิตีสำหรับการเพิ่มที่เก็บข้อมูลก็ต่อเมื่อไม่มีที่เก็บข้อมูลนั้นอยู่แล้วเท่านั้น
ฟังก์ชันนี้มีไว้เพื่อใช้มาโคร repositories.bzl ที่ปลอดภัยซึ่งระบุไว้ใน https://bazel.build/rules/deploying#dependencies
พารามิเตอร์
repo_rule |
ต้องระบุ
ฟังก์ชันกฎที่เก็บข้อมูล |
name |
ต้องระบุ
ชื่อที่เก็บข้อมูลที่จะสร้าง |
kwargs |
ไม่บังคับ
อาร์กิวเมนต์ที่เหลือที่จะส่งไปยังฟังก์ชัน repo_rule |
แสดงผล
ไม่มีฟังก์ชันใดๆ ที่กำหนดที่เก็บข้อมูลเมื่อจำเป็นเป็นผลข้างเคียง
parse_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "parse_netrc")
parse_netrc(contents, filename)
ฟังก์ชันยูทิลิตีสำหรับการแยกวิเคราะห์ไฟล์ .netrc ขั้นพื้นฐานอย่างน้อย
พารามิเตอร์
contents |
ต้องระบุ
อินพุตสำหรับตัวแยกวิเคราะห์ |
filename |
ไม่บังคับ ค่าเริ่มต้นคือ "a .netrc file"
ชื่อไฟล์ที่จะใช้ในข้อความแสดงข้อผิดพลาด (หากมี) |
แสดงผล
พจนานุกรมที่แมปชื่อเครื่องกับพจนานุกรมที่มีข้อมูลที่ระบุเกี่ยวกับเครื่องนั้นๆ
patch
load("@bazel//tools/build_defs/repo:utils.bzl", "patch")
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
การใช้งานการแพตช์ที่เก็บข้อมูลที่แยกออกมาแล้ว
กฎนี้มีไว้เพื่อให้ใช้ในฟังก์ชันการใช้งานของกฎที่เก็บข้อมูล หากไม่ได้ระบุพารามิเตอร์ patches, patch_tool,
patch_args, patch_cmds และ patch_cmds_win ระบบจะนำพารามิเตอร์เหล่านั้นมาจาก ctx.attr
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
patches |
ไม่บังคับ ค่าเริ่มต้นคือ None
ไฟล์แพตช์ที่จะใช้ รายการสตริง ป้ายกำกับ หรือเส้นทาง |
patch_cmds |
ไม่บังคับ ค่าเริ่มต้นคือ None
คำสั่ง Bash ที่จะเรียกใช้สำหรับการแพตช์ ซึ่งจะส่งคำสั่งทีละรายการไปยัง bash -c รายการสตริง |
patch_cmds_win |
ไม่บังคับ ค่าเริ่มต้นคือ None
คำสั่ง PowerShell ที่จะเรียกใช้สำหรับการแพตช์ ซึ่งจะส่งคำสั่งทีละรายการไปยัง powershell /c รายการสตริง หากค่าบูลีนของพารามิเตอร์นี้เป็น "เท็จ" ระบบจะใช้ patch_cmds และจะละเว้นพารามิเตอร์นี้ |
patch_tool |
ไม่บังคับ ค่าเริ่มต้นคือ None
เส้นทางของเครื่องมือแพตช์ที่จะดำเนินการเพื่อใช้แพตช์ สตริง |
patch_args |
ไม่บังคับ ค่าเริ่มต้นคือ None
อาร์กิวเมนต์ที่จะส่งไปยังเครื่องมือแพตช์ รายการสตริง |
auth |
ไม่บังคับ ค่าเริ่มต้นคือ None
พจนานุกรมที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ |
แสดงผล
พจนานุกรมที่แมป URL แพตช์ระยะไกลกับข้อมูลการดาวน์โหลด
read_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_netrc")
read_netrc(ctx, filename)
ฟังก์ชันยูทิลิตีสำหรับการแยกวิเคราะห์ไฟล์ .netrc ขั้นพื้นฐานอย่างน้อย
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
filename |
ต้องระบุ
ชื่อไฟล์ .netrc ที่จะอ่าน |
แสดงผล
พจนานุกรมที่แมปชื่อเครื่องกับพจนานุกรมที่มีข้อมูลที่ระบุเกี่ยวกับเครื่องนั้นๆ
read_user_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "read_user_netrc")
read_user_netrc(ctx)
อ่านไฟล์ netrc เริ่มต้นของผู้ใช้
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
แสดงผล
พจนานุกรมที่แมปชื่อเครื่องกับพจนานุกรมที่มีข้อมูลที่ระบุเกี่ยวกับเครื่องนั้นๆ
symlink_files
load("@bazel//tools/build_defs/repo:utils.bzl", "symlink_files")
symlink_files(ctx)
ฟังก์ชันยูทิลิตีสำหรับการสร้างลิงก์สัญลักษณ์ของไฟล์ในเครื่อง
ฟังก์ชันนี้มีไว้เพื่อให้ใช้ในฟังก์ชันการใช้งานของกฎที่เก็บข้อมูล โดยจะถือว่าพารามิเตอร์ files อยู่ใน ctx.attr
ระบบจะเขียนทับไฟล์ที่มีอยู่
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |
update_attrs
load("@bazel//tools/build_defs/repo:utils.bzl", "update_attrs")
update_attrs(orig, keys, override)
ฟังก์ชันยูทิลิตีสำหรับการเปลี่ยนแปลงและเพิ่มแอตทริบิวต์ที่ระบุลงในการเรียกใช้กฎที่เก็บข้อมูลหนึ่งๆ
ฟังก์ชันนี้ใช้เพื่อให้กฎสามารถทำซ้ำได้
พารามิเตอร์
orig |
ต้องระบุ
พจนานุกรมของแอตทริบิวต์ที่ตั้งค่าจริง (อย่างชัดแจ้งหรือโดยนัย) โดยการเรียกใช้กฎหนึ่งๆ |
keys |
ต้องระบุ
ชุดแอตทริบิวต์ทั้งหมดที่กำหนดไว้ในกฎนี้ |
override |
ต้องระบุ
พจนานุกรมของแอตทริบิวต์ที่จะเขียนทับหรือเพิ่มลงใน orig |
แสดงผล
พจนานุกรมของแอตทริบิวต์ที่มีคีย์จาก override ที่แทรก/อัปเดต
use_netrc
load("@bazel//tools/build_defs/repo:utils.bzl", "use_netrc")
use_netrc(netrc, urls, patterns)
คำนวณพจนานุกรมการตรวจสอบสิทธิ์จากไฟล์ netrc ที่แยกวิเคราะห์แล้วและรายการ URL
พารามิเตอร์
netrc |
ต้องระบุ
ไฟล์ netrc ที่แยกวิเคราะห์เป็นพจนานุกรมแล้ว เช่น ได้รับจาก read_netrc |
urls |
ต้องระบุ
รายการ URL |
patterns |
ต้องระบุ
พจนานุกรม URL ไปยังรูปแบบการให้สิทธิ์ที่ไม่บังคับ |
แสดงผล
พจนานุกรมที่เหมาะเป็นอาร์กิวเมนต์การตรวจสอบสิทธิ์สำหรับ ctx.download กล่าวคือ พจนานุกรมจะแมป URL ทั้งหมดที่ไฟล์ netrc ให้ข้อมูลเข้าสู่ระบบและรหัสผ่านกับพจนานุกรมที่มีข้อมูลเข้าสู่ระบบ รหัสผ่าน และรูปแบบการให้สิทธิ์ที่ไม่บังคับที่เกี่ยวข้อง รวมถึงการแมป "type" กับ "basic" หรือ "pattern"
workspace_and_buildfile
load("@bazel//tools/build_defs/repo:utils.bzl", "workspace_and_buildfile")
workspace_and_buildfile(ctx)
ฟังก์ชันยูทิลิตีสำหรับการเขียนไฟล์ BUILD
กฎนี้มีไว้เพื่อให้ใช้ในฟังก์ชันการใช้งานของกฎที่เก็บข้อมูล
โดยจะถือว่าพารามิเตอร์ name, build_file และ build_file_content
อยู่ใน ctx.attr โดย 2 พารามิเตอร์หลังอาจมีค่าเป็น None
พารามิเตอร์
ctx |
ต้องระบุ
บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้ |