#!/bin/bash # Copyright 2014 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Run a command in the docker build container. Typically this will be one of # the commands in `hack/`. When running in the build container the user is sure # to have a consistent reproducible build environment. set -o errexit set -o nounset set -o pipefail global KUBE_ROOT := "$[dirname $(BASH_SOURCE)]/.." source "$KUBE_ROOT/build/common.sh" global KUBE_RUN_COPY_OUTPUT := $(KUBE_RUN_COPY_OUTPUT:-y) kube::build::verify_prereqs kube::build::build_image if [[ ${KUBE_RUN_COPY_OUTPUT} =~ ^[yY]$ ]] { kube::log::status "Output from this container will be rsynced out upon completion. Set KUBE_RUN_COPY_OUTPUT=n to disable." } else { kube::log::status "Output from this container will NOT be rsynced out upon completion. Set KUBE_RUN_COPY_OUTPUT=y to enable." } kube::build::run_build_command @Argv if [[ ${KUBE_RUN_COPY_OUTPUT} =~ ^[yY]$ ]] { kube::build::copy_output } (CommandList children: [ (C {(set)} {(-o)} {(errexit)}) (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: spids: [74 82] ) (/..) } spids: [73] ) ] spids: [73] ) (C {(source)} {(DQ ($ VSub_Name "$KUBE_ROOT") (/build/common.sh))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_RUN_COPY_OUTPUT) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(y)}) spids: [95 99] ) ) } spids: [93] ) ] spids: [93] ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (build) (Lit_Other ":") (Lit_Other ":") (verify_prereqs)} ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (build) (Lit_Other ":") (Lit_Other ":") (build_image)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(${ VSub_Name KUBE_RUN_COPY_OUTPUT)} right: {(Lit_Other "^") (Lit_Other "[") (yY) (Lit_Other "]") (Lit_Other "$")} ) ) terminator: ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} { (DQ ( "Output from this container will be rsynced out upon completion. Set KUBE_RUN_COPY_OUTPUT=n to disable." ) ) } ) ] spids: [-1 139] ) ] else_action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} { (DQ ( "Output from this container will NOT be rsynced out upon completion. Set KUBE_RUN_COPY_OUTPUT=y to enable." ) ) } ) ] spids: [154 169] ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (build) (Lit_Other ":") (Lit_Other ":") (run_build_command)} {(DQ ($ VSub_At "$@"))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(${ VSub_Name KUBE_RUN_COPY_OUTPUT)} right: {(Lit_Other "^") (Lit_Other "[") (yY) (Lit_Other "]") (Lit_Other "$")} ) ) terminator: ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (build) (Lit_Other ":") (Lit_Other ":") (copy_output) } ) ] spids: [-1 204] ) ] spids: [-1 215] ) ] )