셸 규칙

문제 신고 소스 보기 나이틀리 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

규칙

sh_binary

규칙 소스 보기
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, output_licenses, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

sh_binary 규칙은 실행 가능한 셸 스크립트를 선언하는 데 사용됩니다. (sh_binary는 잘못된 이름입니다. 출력은 반드시 바이너리가 아닙니다.) 이 규칙은 모든 종속 항목이 빌드되고 실행 시간에 runfiles 영역에 표시되도록 합니다. 스크립트 이름에서 확장자를 뺀 이름 (예: .sh)으로 sh_binary() 규칙의 이름을 지정하는 것이 좋습니다. 규칙 이름과 파일 이름은 서로 달라야 합니다. sh_binary는 셸 스크립트 시작 줄을 따르므로 사용 가능한 인터프리터를 사용할 수 있습니다 (예: #!/bin/zsh)

종속 항목이 없고 데이터 파일이 있는 간단한 셸 스크립트의 경우:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

인수

속성
name

이름: 필수

이 타겟의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

이 타겟에 집계할 '라이브러리' 타겟 목록입니다. deps에 관한 일반적인 의견은 대부분의 빌드 규칙에서 정의하는 일반적인 속성을 참고하세요.

이 속성은 srcs의 코드에서 종속되는 해석된 프로그램 소스 코드를 제공하는 다른 sh_library 규칙을 나열하는 데 사용해야 합니다. 이러한 규칙에서 제공하는 파일은 이 타겟의 runfiles에 있습니다.

srcs

라벨 목록입니다. 기본값은 []입니다.

입력 파일 목록입니다.

이 속성은 이 라이브러리에 속하는 셸 스크립트 소스 파일을 나열하는 데 사용해야 합니다. 스크립트는 셸의 source 또는 . 명령어를 사용하여 다른 스크립트를 로드할 수 있습니다.

env_inherit

문자열 목록입니다. 기본값은 []입니다.

sh_library

규칙 소스 보기
sh_library(name, deps, srcs, data, compatible_with, deprecation, exec_compatible_with, exec_group_compatible_with, exec_properties, features, package_metadata, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

이 규칙의 주요 용도는 관련 스크립트(컴파일이나 링크가 필요하지 않은 해석된 언어의 프로그램, 예를 들어 Bourne shell)와 이러한 프로그램이 런타임에 필요로 하는 데이터를 논리적 '라이브러리'로 집계하는 것입니다. 이러한 '라이브러리'는 하나 이상의 sh_binary 규칙의 data 속성에서 사용할 수 있습니다.

filegroup 규칙을 사용하여 데이터 파일을 집계할 수 있습니다.

인터프리터형 프로그래밍 언어에서는 '코드'와 '데이터'가 명확하게 구분되지 않는 경우가 있습니다. 결국 프로그램은 인터프리터의 관점에서 보면 '데이터'일 뿐이기 때문입니다. 이러한 이유로 이 규칙에는 srcs, deps, data와 같이 기본적으로 동일한 세 가지 속성이 있습니다. 현재 구현에서는 이러한 목록의 요소를 구분하지 않습니다. 세 속성 모두 규칙, 소스 파일, 생성된 파일을 허용합니다. 하지만 다른 규칙과 마찬가지로 일반적인 용도로 속성을 사용하는 것이 좋습니다.

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

인수

속성
name

이름: 필수

이 타겟의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

이 타겟에 집계할 '라이브러리' 타겟 목록입니다. deps에 관한 일반적인 의견은 대부분의 빌드 규칙에서 정의하는 일반적인 속성을 참고하세요.

이 속성은 srcs의 코드에서 종속되는 해석된 프로그램 소스 코드를 제공하는 다른 sh_library 규칙을 나열하는 데 사용해야 합니다. 이러한 규칙에서 제공하는 파일은 이 타겟의 runfiles에 있습니다.

srcs

라벨 목록입니다. 기본값은 []입니다.

입력 파일 목록입니다.

이 속성은 이 라이브러리에 속하는 셸 스크립트 소스 파일을 나열하는 데 사용해야 합니다. 스크립트는 셸의 source 또는 . 명령어를 사용하여 다른 스크립트를 로드할 수 있습니다.

sh_test

규칙 소스 보기
sh_test(name, deps, srcs, data, args, compatible_with, deprecation, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, local, package_metadata, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

sh_binary 규칙은 실행 가능한 셸 스크립트를 선언하는 데 사용됩니다. (sh_binary는 잘못된 이름입니다. 출력은 반드시 바이너리가 아닙니다.) 이 규칙은 모든 종속 항목이 빌드되고 실행 시간에 runfiles 영역에 표시되도록 합니다. 스크립트 이름에서 확장자를 뺀 이름 (예: .sh)으로 sh_binary() 규칙의 이름을 지정하는 것이 좋습니다. 규칙 이름과 파일 이름은 서로 달라야 합니다. sh_binary는 셸 스크립트 시작 줄을 따르므로 사용 가능한 인터프리터를 사용할 수 있습니다 (예: #!/bin/zsh)

종속 항목이 없고 데이터 파일이 있는 간단한 셸 스크립트의 경우:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

인수

속성
name

이름: 필수

이 타겟의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

이 타겟에 집계할 '라이브러리' 타겟 목록입니다. deps에 관한 일반적인 의견은 대부분의 빌드 규칙에서 정의하는 일반적인 속성을 참고하세요.

이 속성은 srcs의 코드에서 종속되는 해석된 프로그램 소스 코드를 제공하는 다른 sh_library 규칙을 나열하는 데 사용해야 합니다. 이러한 규칙에서 제공하는 파일은 이 타겟의 runfiles에 있습니다.

srcs

라벨 목록입니다. 기본값은 []입니다.

입력 파일 목록입니다.

이 속성은 이 라이브러리에 속하는 셸 스크립트 소스 파일을 나열하는 데 사용해야 합니다. 스크립트는 셸의 source 또는 . 명령어를 사용하여 다른 스크립트를 로드할 수 있습니다.