유틸리티 저장소 규칙

다음 함수는 @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_urlsremote_file_integrity 매개변수가 ctx.attr에 있다고 가정합니다.

기존 파일이 덮어쓰입니다.

매개변수

ctx 비용이 많이 들 수 있습니다

이 유틸리티 함수를 호출하는 저장소 규칙의 저장소 컨텍스트입니다.

auth 선택사항입니다. 기본값은 None입니다.

일부 URL의 인증 정보를 지정하는 선택적 dict입니다.

반환 값

파일 경로를 다운로드 정보에 매핑하는 dict입니다.

get_auth

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

get_auth(ctx, urls)

.netrc 파일에서 URL 목록의 올바른 인증 dict를 가져오는 유틸리티 함수입니다.

사용 가능한 경우 선택적 netrc 및 auth_patterns 속성을 지원합니다.

매개변수

ctx 비용이 많이 들 수 있습니다

이 유틸리티 함수를 호출하는 저장소 규칙의 저장소 컨텍스트입니다.

urls 비용이 많이 들 수 있습니다

읽을 URL 목록

반환 값

repository_ctx.download에 전달할 수 있는 인증 dict입니다.

입만

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

maybe(repo_rule, name, **kwargs)

아직 없는 경우에만 저장소를 추가하는 유틸리티 함수입니다.

https://bazel.build/rules/deploying#dependencies에 설명된 안전한 repositories.bzl 매크로를 구현하기 위한 것입니다.

매개변수

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입니다.

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_cmdspatch_cmds_win 매개변수가 지정되지 않으면 ctx.attr에서 가져옵니다.

매개변수

ctx 비용이 많이 들 수 있습니다

이 유틸리티 함수를 호출하는 저장소 규칙의 저장소 컨텍스트입니다.

patches 선택사항입니다. 기본값은 None입니다.

적용할 패치 파일입니다. 문자열, 라벨 또는 경로 목록입니다.

patch_cmds 선택사항입니다. 기본값은 None입니다.

패치를 위해 실행할 Bash 명령어입니다. bash -c에 한 번에 하나씩 전달됩니다. 문자열 목록

patch_cmds_win 선택사항입니다. 기본값은 None입니다.

패치를 위해 실행할 Powershell 명령어입니다. powershell /c에 한 번에 하나씩 전달됩니다. 문자열 목록입니다. 이 매개변수의 불리언 값이 false이면 patch_cmds가 사용되고 이 매개변수는 무시됩니다.

patch_tool 선택사항입니다. 기본값은 None입니다.

패치를 적용하기 위해 실행할 패치 도구의 경로입니다. 문자열.

patch_args 선택사항입니다. 기본값은 None입니다.

패치 도구에 전달할 인수입니다. 문자열 목록입니다.

auth 선택사항입니다. 기본값은 None입니다.

일부 URL의 인증 정보를 지정하는 선택적 dict입니다.

반환 값

원격 패치 URL을 다운로드 정보에 매핑하는 dict입니다.

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입니다.

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

symlink_files(ctx)

로컬 파일을 심볼릭 링크하는 유틸리티 함수입니다.

저장소 규칙의 구현 함수에서 사용하기 위한 것입니다. files 매개변수가 ctx.attr에 있다고 가정합니다.

기존 파일이 덮어쓰입니다.

매개변수

update_attrs

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

update_attrs(orig, keys, override)

특정 저장소 규칙 호출에서 지정된 속성을 변경하고 추가하는 유틸리티 함수입니다.

규칙을 재현 가능하게 만드는 데 사용됩니다.

매개변수

orig 비용이 많이 들 수 있습니다

특정 규칙 호출에서 실제로 설정된 속성 (명시적 또는 암시적) 의 dict입니다.

keys 비용이 많이 들 수 있습니다

이 규칙에 정의된 전체 속성 집합입니다.

override 비용이 많이 들 수 있습니다

orig를 재정의하거나 orig에 추가할 속성의 dict입니다.

반환 값

재정의에서 삽입/업데이트된 키가 있는 속성의 dict입니다.

use_netrc

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

use_netrc(netrc, urls, patterns)

파싱된 netrc 파일과 URL 목록에서 인증 dict를 계산합니다.

매개변수

netrc 비용이 많이 들 수 있습니다

이미 dict로 파싱된 netrc 파일입니다(예: read_netrc에서 가져옴).

urls 비용이 많이 들 수 있습니다

URL 목록입니다.

patterns 비용이 많이 들 수 있습니다

URL에서 승인 패턴으로의 선택적 dict입니다.

반환 값

ctx.download의 인증 인수로 적합한 dict입니다. 더 정확히 말하면 dict 는 netrc 파일이 로그인 및 비밀번호를 제공하는 모든 URL을 해당 로그인, 비밀번호, 선택적 승인 패턴이 포함된 dict와 'type'을 'basic' 또는 'pattern'에 매핑하는 dict에 매핑합니다.

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에 있다고 가정합니다. 후자의 두 매개변수는 값이 None일 수 있습니다.

매개변수

ctx 비용이 많이 들 수 있습니다

이 유틸리티 함수를 호출하는 저장소 규칙의 저장소 컨텍스트입니다.