규칙
sh_binary
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, 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
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
이 규칙의 주요 용도는 관련 스크립트(본 셸과 같이 컴파일이나 연결이 필요하지 않은 인터프리트 언어로 된 프로그램)와 이러한 프로그램에 필요한 모든 데이터가 런타임 시 필요한 모든 데이터로 구성된 논리적 '라이브러리'를 집계하는 것입니다. 그런 다음 하나 이상의 sh_binary
규칙의 data
속성에서 이러한 '라이브러리'를 사용할 수 있습니다.
filegroup
규칙을 사용하여 데이터 파일을 집계할 수 있습니다.
인터프리터 프로그래밍 언어에서 '코드'와 '데이터'를 항상 명확하게 구분할 수 있는 것은 아닙니다. 결국 프로그램은 인터프리터의 관점에서 '데이터'일 뿐입니다. 따라서 이 규칙에는 기본적으로 모두 동일한 3가지 속성(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_test
sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
sh_test()
규칙은 Bourne 셸 스크립트로 작성된 테스트를 생성합니다.
모든 테스트 규칙에 공통된 속성 (*_test)을 참고하세요.
예
sh_test( name = "foo_integration_test", size = "small", srcs = ["foo_integration_test.sh"], deps = [":foo_sh_lib"], data = glob(["testdata/*.txt"]), )
인수
특성 | |
---|---|
name |
이 대상의 고유한 이름입니다. |
deps
|
deps 에 관한 일반적인 설명을 참고하세요.
이 속성은 |
srcs
|
이 속성은 해당 요소가 셸 스크립트인 싱글톤 목록이어야 합니다.
이 스크립트는 실행 파일이어야 하며 소스 파일이나 생성된 파일일 수 있습니다.
런타임 시 필요한 다른 모든 파일 (스크립트 또는 데이터)은 |