(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: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub '$('> spids: [93 101] ) (/../..) ) } spids: [91] ) ] spids: [91] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEPLOY_ROOT) op: Equal rhs: {(DQ (${ VSub_Name KUBE_ROOT) (/federation/deploy))} spids: [105] ) ] spids: [105] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUR_ROOT) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub '$('> spids: [115 117] ) ) } spids: [113] ) ] spids: [113] ) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/build/common.sh))}) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/build/util.sh))}) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-util.sh))}) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/lib/logging.sh))}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:TMP_DIR) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-d)})]) left_token: <Left_CommandSub '$('> spids: [168 172] ) ) } spids: [166] ) ] spids: [164] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:FEDERATION_OUTPUT_ROOT) op: Equal rhs: {(DQ (${ VSub_Name LOCAL_OUTPUT_ROOT) (/federation))} spids: [177] ) ] spids: [175] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:VERSIONS_FILE) op: Equal rhs: {(DQ (${ VSub_Name FEDERATION_OUTPUT_ROOT) (/versions))} spids: [187] ) ] spids: [185] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name KUBERNETES_PROVIDER))} right: {(DQ (gke))} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name KUBERNETES_PROVIDER))} right: {(DQ (gce))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(detect-project)}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:KUBE_PROJECT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_PROJECT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (BracedVarSub token: <VSub_Name PROJECT> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [242 245] ) } ) spids: [239 246] ) ) } spids: [237] ) ] spids: [235] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:KUBE_REGISTRY) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_REGISTRY> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(gcr.io) (Lit_Slash /) (${ VSub_Name KUBE_PROJECT)} ) spids: [254 262] ) ) } spids: [252] ) ] spids: [250] ) ] spids: [16777215 229] ) ] else_action: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:KUBE_PROJECT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_PROJECT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (BracedVarSub token: <VSub_Name PROJECT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(federation)} ) spids: [275 279] ) } ) spids: [272 280] ) ) } spids: [270] ) ] spids: [268] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:KUBE_REGISTRY) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_REGISTRY> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {('localhost:5000') (Lit_Slash /) (${ VSub_Name KUBE_PROJECT)} ) spids: [288 296] ) ) } spids: [286] ) ] spids: [284] ) ] spids: [265 299] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_VERSION) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_VERSION> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [310 313] ) ) } spids: [308] ) ] spids: [308] ) (FuncDef name: cleanup body: (BraceGroup children: [ (C {(rm)} {(-rf)} {(DQ (${ VSub_Name TMP_DIR))}) (C {(cd)} {(DQ (${ VSub_Name CUR_ROOT))}) ] spids: [322] ) spids: [318 321] ) (C {(trap)} {(cleanup)} {(EXIT)}) (FuncDef name: dirty_sha body: (BraceGroup children: [ (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:index) op: Equal rhs: {(DQ (${ VSub_Name KUBE_ROOT) (/.git/index))} spids: [366] ) ] spids: [362] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:objects_dir) op: Equal rhs: {(DQ (${ VSub_Name KUBE_ROOT) (/.git/objects))} spids: [379] ) ] spids: [375] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:tmp_dir) op: Equal rhs: {(DQ (${ VSub_Name TMP_DIR) (/.git))} spids: [393] ) ] spids: [389] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:tmp_index) op: Equal rhs: {(DQ (${ VSub_Name tmp_dir) (/index))} spids: [406] ) ] spids: [402] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:tmp_objects_dir) op: Equal rhs: {(DQ (${ VSub_Name tmp_dir) (/objects))} spids: [419] ) ] spids: [415] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name tmp_objects_dir))}) (C {(cp)} {(DQ (${ VSub_Name index))} {(DQ (${ VSub_Name tmp_index))}) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:files) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(ls-files)} {(-m)} {(-o)} {(-d)} {(--exclude-standard)}) ] ) left_token: <Left_CommandSub '$('> spids: [461 473] ) } spids: [460] ) ] spids: [456] ) (SimpleCommand words: [{(git)} {(add)} {(${ VSub_Name files)}] more_env: [ (env_pair name: GIT_INDEX_FILE val: {(DQ (${ VSub_Name tmp_index))} spids: [476] ) ] ) (SimpleCommand words: [{(git)} {(write-tree)}] more_env: [ (env_pair name: GIT_ALTERNATE_OBJECT_DIRECTORIES val: {(DQ (${ VSub_Name objects_dir))} spids: [492] ) (env_pair name: GIT_OBJECT_DIRECTORY val: {(DQ (${ VSub_Name tmp_objects_dir))} spids: [499] ) (env_pair name: GIT_INDEX_FILE val: {(DQ (${ VSub_Name tmp_index))} spids: [506] ) ] ) ] spids: [359] ) spids: [353 358] ) (FuncDef name: build_binaries body: (BraceGroup children: [ (C {(cd)} {(DQ (${ VSub_Name KUBE_ROOT))}) (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) } ) (C {(kube) (Lit_Other ':') (Lit_Other ':') (build) (Lit_Other ':') (Lit_Other ':') (run_build_command) } {(make)} {(Lit_VarLike 'WHAT=') (DQ ('cmd/kubectl cmd/hyperkube'))} ) (C {(kube) (Lit_Other ':') (Lit_Other ':') (build) (Lit_Other ':') (Lit_Other ':') (copy_output) } ) ] spids: [526] ) spids: [520 525] ) (FuncDef name: build_image body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:kube_version) op:Equal rhs:{(DQ )} spids:[598])] spids: [596] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (BracedVarSub token: <VSub_Name KUBE_VERSION> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [610 613] ) ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: Equal rhs: {(DQ (${ VSub_Name KUBE_VERSION))} spids: [622] ) ] spids: [622] ) ] spids: [16777215 619] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (release) (Lit_Other ':') (Lit_Other ':') (semantic_image_tag_version) } ) ] ) left_token: <Left_CommandSub '$('> spids: [635 643] ) ) } spids: [633] ) ] spids: [633] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name kube_version))} right: {(Lit_Other '*') (-dirty)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: PlusEqual rhs: { (DQ (.) (CommandSubPart command_list: (CommandList children:[(C {(dirty_sha)})]) left_token: <Left_CommandSub '$('> spids: [679 681] ) ) } spids: [676] ) ] spids: [676] ) ] spids: [16777215 673] ) ] spids: [16777215 685] ) ] spids: [630 688] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name FEDERATION_OUTPUT_ROOT))}) (SimpleCommand words: [ {(echo)} { (DQ ('{\n') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (KUBE_VERSION) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name kube_version) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('}') ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name VERSIONS_FILE))} spids: [729] ) ] ) (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} { (DQ ('Wrote to version file ') (${ VSub_Name VERSIONS_FILE) (': ') (${ VSub_Name kube_version) ) } ) (SimpleCommand words: [ {(make)} {(-C)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/images/hyperkube))} {(build)} ] more_env: [ (env_pair name:BASEIMAGE val:{(DQ ('ubuntu:16.04'))} spids:[759]) (env_pair name: REGISTRY val: {(DQ (${ VSub_Name KUBE_REGISTRY))} spids: [766] ) (env_pair name: VERSION val: {(DQ (${ VSub_Name kube_version))} spids: [775] ) ] ) ] spids: [589] ) spids: [583 588] ) (FuncDef name: get_version body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:kube_version) op:Equal rhs:{(DQ )} spids:[811])] spids: [809] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (BracedVarSub token: <VSub_Name KUBE_VERSION> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [823 826] ) ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: Equal rhs: {(DQ (${ VSub_Name KUBE_VERSION))} spids: [835] ) ] spids: [835] ) ] spids: [16777215 832] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(${ VSub_Name VERSIONS_FILE)}) (C {(python)} {(-c)} { (SQ <'\\\n'> <'import json, sys;\\\n'> <'print json.load(sys.stdin)["KUBE_VERSION"]'> ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [852 870] ) ) } spids: [850] ) ] spids: [850] ) ] spids: [843 874] ) (C {(echo)} {(DQ (${ VSub_Name kube_version))}) ] spids: [806] ) spids: [800 805] ) (FuncDef name: push body: (BraceGroup children: [ (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:kube_version) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(get_version)})]) left_token: <Left_CommandSub '$('> spids: [903 905] ) ) } spids: [901] ) ] spids: [897] ) (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} {(DQ ('Pushing hyperkube image to the registry'))} ) (C {(gcloud)} {(docker)} {(--)} {(push)} {(DQ (${ VSub_Name KUBE_REGISTRY) ('/hyperkube-amd64:') (${ VSub_Name kube_version))} ) ] spids: [894] ) spids: [888 893] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:ACTION) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [948 951] ) ) } spids: [946] ) ] spids: [944] ) (Case to_match: {(DQ (${ VSub_Name ACTION))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (C {(echo)} { (SQ <'Action must be one of [init, build_binaries, build_image, push, \\\n'> < ' deploy_clusters, deploy_federation, destroy_federation, destroy_clusters \\\n' > <' redeploy_federation], \\\n'> <' got: '> ) (DQ (${ VSub_Name ACTION)) } ) (C {(exit)} {(1)}) ] spids: [16777215 967 990 16777215] ) (case_arm pat_list: [{(DQ (build_binaries))}] action: [(C {(build_binaries)})] spids: [994 996 1002 16777215] ) (case_arm pat_list: [{(DQ (build_image))}] action: [(C {(build_image)})] spids: [1006 1008 1014 16777215] ) (case_arm pat_list: [{(DQ (push))}] action: [(C {(push)})] spids: [1018 1020 1026 16777215] ) (case_arm pat_list: [{(DQ (init))}] action: [ (Subshell child: (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(init)}) spids: [1055 1068] ) ] spids: [1050 1052 1071 16777215] ) (case_arm pat_list: [{(DQ (deploy_clusters))}] action: [ (Subshell child: (CommandList children: [ (C {(export)} {(FEDERATION_OUTPUT_ROOT)}) (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(deploy_clusters)}) ] ) spids: [1080 1098] ) ] spids: [1075 1077 1101 16777215] ) (case_arm pat_list: [{(DQ (deploy_federation))}] action: [ (Subshell child: (CommandList children: [ (C {(export)} {(FEDERATION_OUTPUT_ROOT)}) (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(deploy_federation)}) ] ) spids: [1110 1128] ) ] spids: [1105 1107 1131 16777215] ) (case_arm pat_list: [{(DQ (destroy_federation))}] action: [ (Subshell child: (CommandList children: [ (C {(export)} {(FEDERATION_OUTPUT_ROOT)}) (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(destroy_federation)}) ] ) spids: [1140 1158] ) ] spids: [1135 1137 1161 16777215] ) (case_arm pat_list: [{(DQ (destroy_clusters))}] action: [ (Subshell child: (CommandList children: [ (C {(export)} {(FEDERATION_OUTPUT_ROOT)}) (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(destroy_clusters)}) ] ) spids: [1170 1188] ) ] spids: [1165 1167 1191 16777215] ) (case_arm pat_list: [{(DQ (redeploy_federation))}] action: [ (Subshell child: (CommandList children: [ (C {(export)} {(FEDERATION_OUTPUT_ROOT)}) (C {(DQ (${ VSub_Name DEPLOY_ROOT) (/deploy.sh))} {(redeploy_federation)}) ] ) spids: [1200 1218] ) ] spids: [1195 1197 1221 16777215] ) ] spids: [954 962 1223] ) ] )