Sh 규칙

문제 신고 소스 보기 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

규칙

sh_binary

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

sh_binary 규칙은 실행 가능한 셸 스크립트를 선언하는 데 사용됩니다. (sh_binary는 잘못된 명칭입니다. 출력이 반드시 바이너리가 아닙니다.) 이 규칙을 사용하면 모든 종속 항목이 빌드되고 실행 시 runfiles 영역에 표시됩니다. sh_binary() 규칙의 이름은 확장자를 뺀 스크립트 이름을 사용 (예: .sh)하는 것이 좋습니다. 규칙 이름과 파일 이름은 구분되어야 합니다. 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, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

이 규칙의 주요 용도는 관련 스크립트(Bourne 셸과 같이 컴파일이나 연결이 필요하지 않은 해석 언어의 프로그램)와 이러한 프로그램이 런타임에 필요로 하는 모든 데이터로 구성된 논리적 '라이브러리'를 함께 집계하는 것입니다. 그런 다음 이러한 '라이브러리'를 하나 이상의 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, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

sh_binary 규칙은 실행 가능한 셸 스크립트를 선언하는 데 사용됩니다. sh_binary는 부적절한 명칭입니다. 출력이 반드시 바이너리일 필요는 없습니다. 이 규칙을 사용하면 모든 종속 항목이 빌드되고 실행 시 runfiles 영역에 표시됩니다. sh_binary() 규칙의 이름은 스크립트 이름에서 확장자를 뺀 이름으로 지정하는 것이 좋습니다 (예: .sh). 규칙 이름과 파일 이름은 고유해야 합니다. sh_binary는 셰이뱅을 따르므로 사용 가능한 모든 인터프리터를 사용할 수 있습니다 (예: #!/bin/zsh)

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

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

인수

속성
name

이름: 필수사항

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

deps

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

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

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

srcs

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

입력 파일 목록입니다.

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