module_ctx

도우미 함수와 종속 항목 그래프 전반의 관련 태그에 관한 정보가 포함된 모듈 확장 프로그램의 컨텍스트입니다. 모듈 확장 프로그램을 만들 때 implementation 함수의 인수로 module_ctx 객체를 가져옵니다.

회원

다운로드

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

제공된 URL의 파일을 출력 경로에 다운로드하고 success를 포함하는 구조체를 반환합니다. success는 다운로드가 성공적으로 완료된 경우 true인 플래그이며, 성공한 경우 sha256integrity 필드가 있는 파일의 해시입니다.

매개변수

매개변수 설명
url string 또는 string의 반복 가능 객체(Iterable); 필수
동일한 파일을 참조하는 미러 URL 목록입니다.
output 문자열 또는 라벨 또는 경로; 기본값은 ''
저장소 디렉터리를 기준으로 하는 출력 파일의 경로입니다.
sha256 기본값은 ''
입니다. 다운로드된 파일의 예상 SHA-256 해시입니다. 다운로드한 파일의 SHA-256 해시와 일치해야 합니다. 원격 파일은 변경될 수 있으므로 SHA-256을 생략하면 보안 위험이 있습니다. 이 필드를 생략하면 빌드가 비헤르메틱이 됩니다. 개발을 더 쉽게 하기 위해 선택사항이지만 배송 전에 설정해야 합니다.
executable 기본값은 False
입니다. 생성된 파일에 실행 파일 플래그를 설정합니다. 기본값은 false입니다.
allow_fail 기본값은 False
입니다. 설정된 경우 다운로드 실패에 대한 오류를 발생시키는 대신 반환 값에 오류를 표시합니다.
canonical_id 기본값은 ''
입니다. 설정된 경우 파일이 동일한 표준 ID로 캐시에 추가된 경우로 캐시 적중을 제한합니다.
auth 기본값은 {}
입니다. 일부 URL의 인증 정보를 지정하는 선택적 사전입니다.
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(다운로드가 성공적으로 완료된 경우 true인 플래그)와 성공한 경우 sha256integrity 필드가 있는 파일의 해시를 포함하는 구조체를 반환합니다.

매개변수

매개변수 설명
url string 또는 string의 반복 가능 객체(Iterable); 필수
동일한 파일을 참조하는 미러 URL 목록입니다.
output 문자열 또는 라벨 또는 경로. 기본값은 ''
입니다. 보관 파일이 압축 해제될 디렉터리의 경로입니다(저장소 디렉터리 기준).
sha256 기본값은 ''
입니다. 다운로드된 파일의 예상 SHA-256 해시입니다. 다운로드한 파일의 SHA-256 해시와 일치해야 합니다. 원격 파일은 변경될 수 있으므로 SHA-256을 생략하면 보안 위험이 있습니다. 이 필드를 생략하면 빌드가 비헤르메틱이 됩니다. 개발을 더 쉽게 하기 위해 선택사항이지만 배송 전에 설정해야 합니다. 제공된 경우 저장소 캐시에서 먼저 지정된 해시가 있는 파일을 확인합니다. 캐시에서 파일을 찾지 못한 경우에만 다운로드를 시도합니다. 다운로드가 완료되면 파일이 캐시에 추가됩니다.
type 기본값은 다운로드한 파일의 보관 파일 유형인 ''
입니다. 기본적으로 보관 파일 유형은 URL의 파일 확장자에서 결정됩니다. 파일에 확장자가 없는 경우 여기에 'zip', 'jar', 'war', 'aar', 'tar', 'tar.gz', 'tgz', 'tar.xz', 'txz', '.tar.zst', '.tzst', 'tar.bz2', '.tbz', '.ar' 또는 '.deb'을 명시적으로 지정할 수 있습니다.
stripPrefix 기본값은 ''
입니다. 압축 해제된 파일에서 삭제할 디렉터리 접두사입니다. 많은 보관 파일에는 보관 파일의 모든 파일이 포함된 최상위 디렉터리가 포함되어 있습니다. build_file에서 이 접두사를 반복해서 지정할 필요가 없으며, 이 필드를 사용하여 추출된 파일에서 접두사를 삭제할 수 있습니다.
allow_fail 기본값은 False
입니다. 설정된 경우 다운로드 실패에 대한 오류를 발생시키는 대신 반환 값에 오류를 표시합니다.
canonical_id 기본값은 ''
입니다. 설정된 경우 파일이 동일한 표준 ID로 캐시에 추가된 경우로 캐시 적중을 제한합니다.
auth 기본값은 {}
입니다. 일부 URL의 인증 정보를 지정하는 선택적 사전입니다.
integrity 기본값은 ''
입니다. 다운로드된 파일의 예상 체크섬입니다(하위 리소스 무결성 형식). 다운로드한 파일의 체크섬과 일치해야 합니다. 원격 파일이 변경될 수 있으므로 체크섬을 생략하면 보안 위험이 발생합니다. 이 필드를 생략하면 빌드가 비헤르메틱이 됩니다. 개발을 더 쉽게 하기 위해 선택사항이지만 배송 전에 설정해야 합니다.
rename_files 기본값은 {}
입니다. 추출 중에 이름을 바꿀 파일을 지정하는 선택적 사전입니다. 키와 이름이 정확히 일치하는 보관 파일 항목은 디렉터리 접두사 조정 전에 값으로 이름이 변경됩니다. 이는 유니코드가 아닌 파일 이름이 포함된 보관 파일이나 대소문자를 구분하지 않는 파일 시스템에서 동일한 경로로 추출되는 파일이 있는 보관 파일을 추출하는 데 사용할 수 있습니다.

execute

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

인수 목록으로 지정된 명령어를 실행합니다. 명령어의 실행 시간은 timeout에 의해 제한됩니다 (초, 기본값 600초). 이 메서드는 명령어의 출력이 포함된 exec_result 구조를 반환합니다. environment 맵을 사용하여 프로세스에 전달할 일부 환경 변수를 재정의할 수 있습니다.

매개변수

매개변수 설명
arguments 필수
인수 목록입니다. 첫 번째 요소는 실행할 프로그램의 경로여야 합니다.
timeout 기본값은 600
입니다. 명령의 최대 지속 시간(초)(기본값은 600초)입니다.
environment 기본값은 {}
입니다. 일부 환경 변수가 프로세스에 전달되도록 설정하도록 강제합니다.
quiet 기본값은 True
입니다. stdout 및 stderr을 터미널에 출력해야 하는 경우
working_directory 기본값은 ""
입니다. 명령어 실행을 위한 작업 디렉터리입니다. 저장소 루트를 기준으로 하는 상대 경로 또는 절대 경로일 수 있습니다.

extension_metadata

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

모듈 확장 프로그램의 구현 함수에서 반환하여 확장 프로그램에서 생성된 저장소에 관한 메타데이터를 Bazel에 제공할 수 있는 불투명 객체를 생성합니다.

매개변수

매개변수 설명
root_module_direct_deps 문자열시퀀스 또는 문자열 또는 None. 기본값은 None
입니다. 확장에서 루트 모듈의 직접 종속 항목으로 간주하는 저장소의 이름입니다. 루트 모듈이 추가 저장소를 가져오거나 use_repo를 통해 이러한 저장소를 모두 가져오지 않으면 확장 프로그램을 평가할 때 Bazel에서 경고와 수정 명령어를 출력합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나가 지정되면 다른 하나도 지정해야 합니다. 이 두 매개변수로 지정된 목록은 서로소여야 합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나만 특수 값 "all"로 설정할 수 있습니다. 이 값은 확장 프로그램에서 생성된 모든 저장소의 이름이 포함된 목록이 값으로 지정된 것처럼 처리됩니다.

root_module_direct_dev_deps string시퀀스 또는 string 또는 None. 기본값은 None
입니다. 확장 프로그램이 루트 모듈의 직접 개발 종속 항목으로 간주하는 저장소의 이름입니다. 루트 모듈이 추가 저장소를 가져오거나 use_extension(..., dev_dependency = True)로 생성된 확장 프로그램 프록시에서 use_repo를 통해 이러한 저장소를 모두 가져오지 않으면 확장 프로그램이 평가될 때 Bazel에서 경고와 수정 명령어를 출력합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나가 지정되면 다른 하나도 지정해야 합니다. 이 두 매개변수로 지정된 목록은 서로소여야 합니다.

root_module_direct_depsroot_module_direct_dev_deps 중 하나만 특수 값 "all"로 설정할 수 있습니다. 이 값은 확장 프로그램에서 생성된 모든 저장소의 이름이 포함된 목록이 값으로 지정된 것처럼 처리됩니다.

파일

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

제공된 콘텐츠로 저장소 디렉터리에 파일을 생성합니다.

매개변수

매개변수 설명
path string 또는 Label 또는 path; 필수
저장소 디렉터리를 기준으로 생성할 파일의 경로입니다.
content 기본값은 ''
입니다. 생성할 파일의 콘텐츠입니다. 기본적으로 비어 있습니다.
executable 기본값은 True
입니다. 생성된 파일에 실행 파일 플래그를 설정합니다(기본적으로 true).
legacy_utf8 기본값은 True
입니다. 파일 콘텐츠를 UTF-8로 인코딩합니다. 기본값은 true입니다. 향후 버전에서는 기본값이 변경되고 이 매개변수가 삭제됩니다.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

devDependency = True을 사용하여 use_extension 호출 결과에 지정된 태그인지 여부를 반환합니다.

매개변수

매개변수 설명
tag bazel_module_tag; required
bazel_module.tags에서 가져온 태그입니다.

modules

list module_ctx.modules

이 모듈 확장 프로그램을 사용하는 외부 종속 항목 그래프의 모든 Bazel 모듈 목록입니다. 각 모듈은 이 확장 프로그램에 지정된 모든 태그를 노출하는 bazel_module 객체입니다. 이 사전의 반복 순서는 루트 모듈에서 시작하는 너비 우선 검색과 동일합니다.

os

repository_os module_ctx.os

시스템의 정보에 액세스하는 구조체입니다.

경로

path module_ctx.path(path)

문자열, 라벨 또는 경로에서 경로를 반환합니다. 경로가 상대 경로인 경우 저장소 디렉터리를 기준으로 확인됩니다. 경로가 라벨인 경우 해당 파일의 경로로 확인됩니다. 원격 저장소는 분석 단계에서 실행되므로 타겟 결과에 종속될 수 없습니다 (라벨은 생성되지 않은 파일을 가리켜야 함). 경로가 경로인 경우 해당 경로를 그대로 반환합니다.

매개변수

매개변수 설명
path string 또는 Label 또는 path; required
경로를 만들 문자열, 라벨 또는 경로

읽기

string module_ctx.read(path)

파일 시스템에 있는 파일의 콘텐츠를 읽습니다.

매개변수

매개변수 설명
path 문자열 또는 라벨 또는 경로; 필수
읽어올 파일의 경로입니다.

report_progress

None module_ctx.report_progress(status='')

이 저장소 또는 모듈 확장 프로그램의 가져오기 진행 상태를 업데이트합니다.

매개변수

매개변수 설명
status string; default is ''
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 required
경로에서 찾을 프로그램입니다.
None을 반환할 수 있습니다.