1*7887bec8SAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project 2*7887bec8SAndroid Build Coastguard Worker# 3*7887bec8SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*7887bec8SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*7887bec8SAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*7887bec8SAndroid Build Coastguard Worker# 7*7887bec8SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*7887bec8SAndroid Build Coastguard Worker# 9*7887bec8SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*7887bec8SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*7887bec8SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7887bec8SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*7887bec8SAndroid Build Coastguard Worker# limitations under the License. 14*7887bec8SAndroid Build Coastguard Worker 15*7887bec8SAndroid Build Coastguard Worker# BUILD 16*7887bec8SAndroid Build Coastguard Workerload("//build/bazel_common_rules/exec/impl:embedded_exec.bzl", "embedded_exec") 17*7887bec8SAndroid Build Coastguard Workerload("//build/bazel_common_rules/exec/impl:exec.bzl", "exec") 18*7887bec8SAndroid Build Coastguard Worker 19*7887bec8SAndroid Build Coastguard Workerexec( 20*7887bec8SAndroid Build Coastguard Worker name = "script_a", 21*7887bec8SAndroid Build Coastguard Worker args = [ 22*7887bec8SAndroid Build Coastguard Worker "--argsA=valueA", 23*7887bec8SAndroid Build Coastguard Worker "--args_expanded=$(rootpath data.txt)", 24*7887bec8SAndroid Build Coastguard Worker ], 25*7887bec8SAndroid Build Coastguard Worker data = [":data.txt"], 26*7887bec8SAndroid Build Coastguard Worker script = "echo script_a $@", 27*7887bec8SAndroid Build Coastguard Worker) 28*7887bec8SAndroid Build Coastguard Worker 29*7887bec8SAndroid Build Coastguard Workersh_binary( 30*7887bec8SAndroid Build Coastguard Worker name = "script_b", 31*7887bec8SAndroid Build Coastguard Worker srcs = ["script_b.sh"], 32*7887bec8SAndroid Build Coastguard Worker args = [ 33*7887bec8SAndroid Build Coastguard Worker "--script_b_arg=value", 34*7887bec8SAndroid Build Coastguard Worker "--args_expanded=$(rootpath data.txt)", 35*7887bec8SAndroid Build Coastguard Worker ], 36*7887bec8SAndroid Build Coastguard Worker data = [":data.txt"], 37*7887bec8SAndroid Build Coastguard Worker env = { 38*7887bec8SAndroid Build Coastguard Worker "SCRIPT_B_ENV": "env_value", 39*7887bec8SAndroid Build Coastguard Worker "SCRIPT_B_ENV_EXPANDED": "$(rootpath data.txt)", 40*7887bec8SAndroid Build Coastguard Worker }, 41*7887bec8SAndroid Build Coastguard Worker) 42*7887bec8SAndroid Build Coastguard Worker 43*7887bec8SAndroid Build Coastguard Workerexec( 44*7887bec8SAndroid Build Coastguard Worker name = "cat_data", 45*7887bec8SAndroid Build Coastguard Worker data = [":data.txt"], 46*7887bec8SAndroid Build Coastguard Worker script = "cat $(rootpath :data.txt)", 47*7887bec8SAndroid Build Coastguard Worker) 48*7887bec8SAndroid Build Coastguard Worker 49*7887bec8SAndroid Build Coastguard Workerembedded_exec( 50*7887bec8SAndroid Build Coastguard Worker name = "script_a_embedded", 51*7887bec8SAndroid Build Coastguard Worker actual = "script_a", 52*7887bec8SAndroid Build Coastguard Worker) 53*7887bec8SAndroid Build Coastguard Worker 54*7887bec8SAndroid Build Coastguard Workerembedded_exec( 55*7887bec8SAndroid Build Coastguard Worker name = "script_b_embedded", 56*7887bec8SAndroid Build Coastguard Worker actual = "script_b", 57*7887bec8SAndroid Build Coastguard Worker) 58*7887bec8SAndroid Build Coastguard Worker 59*7887bec8SAndroid Build Coastguard Workerexec( 60*7887bec8SAndroid Build Coastguard Worker name = "combined", 61*7887bec8SAndroid Build Coastguard Worker args = ["--script_a_path=$(rootpath :script_a_embedded)"], 62*7887bec8SAndroid Build Coastguard Worker data = [ 63*7887bec8SAndroid Build Coastguard Worker ":cat_data", 64*7887bec8SAndroid Build Coastguard Worker ":script_a_embedded", 65*7887bec8SAndroid Build Coastguard Worker ":script_b_embedded", 66*7887bec8SAndroid Build Coastguard Worker ], 67*7887bec8SAndroid Build Coastguard Worker script = """ 68*7887bec8SAndroid Build Coastguard Worker echo combined_args=$@ 69*7887bec8SAndroid Build Coastguard Worker $(rootpath :script_a_embedded) 70*7887bec8SAndroid Build Coastguard Worker $(rootpath :script_b_embedded) 71*7887bec8SAndroid Build Coastguard Worker $(rootpath :cat_data) 72*7887bec8SAndroid Build Coastguard Worker """, 73*7887bec8SAndroid Build Coastguard Worker) 74*7887bec8SAndroid Build Coastguard Worker 75*7887bec8SAndroid Build Coastguard Workerpy_test( 76*7887bec8SAndroid Build Coastguard Worker name = "exec_test", 77*7887bec8SAndroid Build Coastguard Worker srcs = ["exec_test.py"], 78*7887bec8SAndroid Build Coastguard Worker args = ["$(location :combined)"], 79*7887bec8SAndroid Build Coastguard Worker data = [":combined"], 80*7887bec8SAndroid Build Coastguard Worker deps = [ 81*7887bec8SAndroid Build Coastguard Worker "@io_abseil_py//absl/testing:absltest", 82*7887bec8SAndroid Build Coastguard Worker ], 83*7887bec8SAndroid Build Coastguard Worker) 84*7887bec8SAndroid Build Coastguard Worker 85*7887bec8SAndroid Build Coastguard Workertest_suite( 86*7887bec8SAndroid Build Coastguard Worker name = "tests", 87*7887bec8SAndroid Build Coastguard Worker tests = [ 88*7887bec8SAndroid Build Coastguard Worker ":exec_test", 89*7887bec8SAndroid Build Coastguard Worker ], 90*7887bec8SAndroid Build Coastguard Worker) 91