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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

อาจจะ

load("@bazel//tools/build_defs/repo:utils.bzl", "maybe")

maybe(repo_rule, name, **kwargs)

ฟังก์ชันยูทิลิตีสำหรับการเพิ่มที่เก็บข้อมูลก็ต่อเมื่อยังไม่มีที่เก็บข้อมูลนั้น

ซึ่งเป็นการใช้แมโคร safe_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"

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

การคืนสินค้า

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

แพตช์

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 ที่จะอ่าน

การคืนสินค้า

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

read_user_netrc

load("@bazel//tools/build_defs/repo:utils.bzl", "read_user_netrc")

read_user_netrc(ctx)

อ่านไฟล์ .netrc เริ่มต้นของผู้ใช้

พารามิเตอร์

ctx ต้องระบุ

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

การคืนสินค้า

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

update_attrs

load("@bazel//tools/build_defs/repo:utils.bzl", "update_attrs")

update_attrs(orig, keys, override)

ฟังก์ชันยูทิลิตีสำหรับการแก้ไขและเพิ่มแอตทริบิวต์ที่ระบุในการเรียกใช้กฎที่เก็บที่เฉพาะเจาะจง

ซึ่งใช้เพื่อทำให้กฎสามารถทำซ้ำได้

พารามิเตอร์

orig ต้องระบุ

พจนานุกรมของแอตทริบิวต์ที่ตั้งค่าจริง (โดยชัดแจ้งหรือโดยนัย) โดยการเรียกใช้กฎที่เฉพาะเจาะจง

keys ต้องระบุ

ชุดแอตทริบิวต์ทั้งหมดที่กำหนดไว้ในกฎนี้

override ต้องระบุ

พจนานุกรมของแอตทริบิวต์ที่จะลบล้างหรือเพิ่มลงใน orig

การคืนสินค้า

พจนานุกรมของแอตทริบิวต์ที่มีคีย์จากการแทนที่ที่แทรก/อัปเดต

use_netrc

load("@bazel//tools/build_defs/repo:utils.bzl", "use_netrc")

use_netrc(netrc, urls, patterns)

คำนวณพจนานุกรมการตรวจสอบสิทธิ์จากไฟล์ .netrc ที่แยกวิเคราะห์แล้วและรายการ URL

พารามิเตอร์

netrc ต้องระบุ

ไฟล์ netrc ที่แยกวิเคราะห์เป็น dict แล้ว เช่น ที่ได้จาก read_netrc

urls ต้องระบุ

รายการ URL

patterns ต้องระบุ

พจนานุกรมที่ไม่บังคับของ URL ไปยังรูปแบบการให้สิทธิ์

การคืนสินค้า

dict เหมาะสมเป็นอาร์กิวเมนต์การตรวจสอบสิทธิ์สำหรับ ctx.download กล่าวคือ dict จะแมป URL ทั้งหมดที่ไฟล์ .netrc ระบุข้อมูลเข้าสู่ระบบและรหัสผ่านไปยัง dict ที่มีข้อมูลเข้าสู่ระบบ รหัสผ่าน และรูปแบบการให้สิทธิ์ที่ไม่บังคับที่เกี่ยวข้อง รวมถึงการแมป "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 ต้องระบุ

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