(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMMIT_RANGE) op: Equal rhs: { (BracedVarSub token: <VSub_Name COMMIT_RANGE> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(merge-base)} {(origin/master)} {(HEAD)})] ) left_token: <Left_CommandSub "$("> spids: [130 138] ) (DQ (..)) } ) spids: [127 142] ) } spids: [126] ) ] spids: [126] ) (C {(cd)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--show-toplevel)})]) left_token: <Left_CommandSub "$("> spids: [151 157] ) ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:files) op:Equal rhs:{(ArrayLiteralPart)} spids:[164])] spids: [164] ) (ForEach iter_name: file iter_words: [ { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(diff)} {(--name-only)} {(${ VSub_Name COMMIT_RANGE)})] ) left_token: <Left_CommandSub "$("> spids: [174 185] ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:files) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [(C {(bazel)} {(query)} {($ VSub_Name "$file")})] ) left_token: <Left_CommandSub "$("> spids: [193 199] ) } ] ) } spids: [191] ) ] spids: [191] ) (C {(echo)} { (CommandSubPart command_list: (CommandList children: [(C {(bazel)} {(query)} {($ VSub_Name "$file")})] ) left_token: <Left_CommandSub "$("> spids: [205 211] ) } ) ] spids: [188 213] ) spids: [173 186] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:buildables) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(bazel)} {(query)} {(--keep_going)} {(--noshow_progress)} { (DQ ("kind(.*_binary, rdeps(//..., set(") (BracedVarSub token: <VSub_Name files> bracket_op: (WholeArray op_id:Lit_At) spids: [237 242] ) (")))") ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [220 245] ) } spids: [219] ) ] spids: [219] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$buildables")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Building binaries"))}) (C {(bazel)} {(build)} {($ VSub_Name "$buildables")}) ] spids: [-1 263] ) ] spids: [-1 279] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tests) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(bazel)} {(query)} {(--keep_going)} {(--noshow_progress)} { (DQ ("kind(test, rdeps(//..., set(") (BracedVarSub token: <VSub_Name files> bracket_op: (WholeArray op_id:Lit_At) spids: [300 305] ) ("))) except attr('tags', 'manual', //...)") ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [283 308] ) } spids: [282] ) ] spids: [282] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$tests")})) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("Running tests"))}) (C {(bazel)} {(test)} {($ VSub_Name "$tests")})] spids: [-1 326] ) ] spids: [-1 342] ) ] )