(CommandList children: [ (C {(set)} {(-eu)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WORKSPACE_DIR) op: Equal rhs: {(DQ (${ VSub_Name PWD))} spids: [62] ) ] spids: [62] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ (${ VSub_Name WORKSPACE_DIR))} right: {(/)} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_e child: {(DQ (${ VSub_Name WORKSPACE_DIR) (/WORKSPACE))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ";"> ) ] spids: [-1 105] ) ] spids: [-1 112] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WORKSPACE_DIR) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name WORKSPACE_DIR))})] ) left_token: <Left_CommandSub "$("> spids: [117 125] ) ) } spids: [115] ) ] spids: [115] ) ] spids: [86 128] ) ) (Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(LhsName name:WORKSPACE_DIR) op:Equal spids:[132])] spids: [130] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_e child: {(DQ (${ VSub_Name WORKSPACE_DIR) (/WORKSPACE))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:WRAPPER) op: Equal rhs: {(DQ (${ VSub_Name WORKSPACE_DIR) (/tools/bazel))} spids: [156] ) ] spids: [154] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_x child:{(DQ (${ VSub_Name WRAPPER))}) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(exec)} {(-a)} {(DQ ($ VSub_Number "$0"))} {(DQ (${ VSub_Name WRAPPER))} {(DQ ($ VSub_At "$@"))} ) ] spids: [-1 181] ) ] spids: [-1 203] ) ] spids: [-1 151] ) ] spids: [-1 205] ) (FuncDef name: get_realpath body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-s)})]) left_token: <Left_CommandSub "$("> spids: [225 229] ) ) } {(Lit_Other "=") (Lit_Other "=")} {(DQ (Darwin))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [247] ) ] spids: [245] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ (${ VSub_Name queue))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: {(DQ (${ VSub_Name PWD) (/) (${ VSub_Name queue))} spids: [279] ) ] spids: [279] ) ] spids: [-1 272] ) ] spids: [-1 291] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:current) op: Equal rhs: {(DQ )} spids: [296] ) ] spids: [294] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name queue))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name queue> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /)} ) spids: [325 329] ) ) } spids: [323] ) ] spids: [323] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:segment) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name queue> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {(Lit_Slash /) ("*")} ) spids: [341 346] ) ) } spids: [339] ) ] spids: [337] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ (${ VSub_Name queue))} right: {(Lit_Other "*") (/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:segment) op: Equal rhs: {(DQ (${ VSub_Name queue))} spids: [377] ) ] spids: [377] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: {(DQ )} spids: [385] ) ] spids: [385] ) ] spids: [-1 374] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name queue> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {("*") (Lit_Slash /)} ) spids: [399 404] ) ) } spids: [397] ) ] spids: [397] ) ] spids: [390 408] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: {(DQ (${ VSub_Name current) (/) (${ VSub_Name segment))} spids: [413] ) ] spids: [411] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-h)} {(DQ (${ VSub_Name link))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(readlink)} {(DQ (${ VSub_Name link))}) ] ) left_token: <Left_CommandSub "$("> spids: [446 454] ) ) } spids: [444] ) ] spids: [444] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:queue) op: Equal rhs: {(DQ (${ VSub_Name link) (/) (${ VSub_Name queue))} spids: [458] ) ] spids: [458] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name link))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:current) op: Equal rhs: {(DQ )} spids: [492] ) ] spids: [492] ) ] spids: [-1 489] ) ] spids: [-1 497] ) ] spids: [-1 441] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:current) op: Equal rhs: {(DQ (${ VSub_Name link))} spids: [503] ) ] spids: [503] ) ] spids: [500 511] ) ] spids: [316 514] ) ) (C {(echo)} {(DQ (${ VSub_Name current))}) ] spids: [-1 242] ) ] else_action: [(C {(readlink)} {(-f)} {(DQ ($ VSub_Number "$1"))})] spids: [527 539] ) ] spids: [217] ) spids: [211 216] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BAZEL_REAL) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(get_realpath)} { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [554 559] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [550 561] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [546 563] ) (/bazel-real) ) } spids: [544] ) ] spids: [544] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_x child:{(DQ (${ VSub_Name BAZEL_REAL))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("Failed to find underlying Bazel executable at ") (${ VSub_Name BAZEL_REAL))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[597])] ) (C {(exit)} {(1)}) ] spids: [-1 585] ) ] spids: [-1 605] ) (C {(exec)} {(-a)} {(DQ ($ VSub_Number "$0"))} {(DQ (${ VSub_Name BAZEL_REAL))} {(DQ ($ VSub_At "$@"))}) ] )