ใช้กฎที่เก็บ

คุณโหลดฟังก์ชันต่อไปนี้ได้จาก @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 ไม่บังคับ ค่าเริ่มต้นคือ None

ชื่อไฟล์ที่จะใช้ในข้อความแสดงข้อผิดพลาด หากมี

ค่าที่แสดงผล

พจนานุกรมที่แมปชื่อเครื่องกับพจนานุกรมที่มีข้อมูลที่ระบุ เกี่ยวกับเครื่องนั้น

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 บางรายการ

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 ต้องระบุ

บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้

ค่าที่แสดงผล

พจนานุกรมที่แมปชื่อเครื่องกับพจนานุกรมที่มีข้อมูลที่ระบุเกี่ยวกับเครื่องนั้น

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)

ฟังก์ชันยูทิลิตีสำหรับการเขียนไฟล์ WORKSPACE และไฟล์ BUILD หากมีการขอ

กฎนี้มีไว้เพื่อให้ใช้ในฟังก์ชันการใช้งานของกฎที่เก็บข้อมูล โดยจะถือว่าพารามิเตอร์ name, build_file, build_file_content, workspace_file, และ workspace_file_content อยู่ใน ctx.attr โดย 4 พารามิเตอร์หลังอาจมีค่าเป็น None

พารามิเตอร์

ctx ต้องระบุ

บริบทที่เก็บข้อมูลของกฎที่เก็บข้อมูลที่เรียกใช้ฟังก์ชันยูทิลิตีนี้