(CommandList children: [ (C {(set)} {(-eu)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:GCC) op:Equal rhs:{(/usr/bin/gcc)} spids:[86])] spids: [86] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL_NAME_TOOL) op: Equal rhs: {(DQ (/usr/bin/install_name_tool))} spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LIBS) op:Equal rhs:{(SQ )} spids:[95])] spids: [95] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LIB_DIRS) op:Equal rhs:{(SQ )} spids:[97])] spids: [97] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RPATH) op:Equal rhs:{(SQ )} spids:[99])] spids: [99] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OUTPUT) op:Equal rhs:{(SQ )} spids:[101])] spids: [101] ) (ForEach iter_name: i iter_words: [{(DQ ($ VSub_At "$@"))}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ (${ VSub_Name OUTPUT))} right: {(DQ (1))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUTPUT) op: Equal rhs: {($ VSub_Name "$i")} spids: [142] ) ] spids: [142] ) ] spids: [-1 139] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$i"))} right: {(Lit_Other "^") (-l) ("(") (.) (Lit_Other "*") (")") (Lit_Other "$")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIBS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [176 181] ) (" ") ($ VSub_Name "$LIBS") ) } spids: [174] ) ] spids: [174] ) ] spids: [146 167] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$i"))} right: {(Lit_Other "^") (-L) ("(") (.) (Lit_Other "*") (")") (Lit_Other "$")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIB_DIRS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [217 222] ) (" ") ($ VSub_Name "$LIB_DIRS") ) } spids: [215] ) ] spids: [215] ) ] spids: [187 208] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$i"))} right: {(Lit_Other "^") (-Wl) (Lit_Comma ",") (-rpath) (Lit_Comma ",") (EscapedLiteralPart token: <Lit_EscapedChar "\\$"> ) (ORIGIN/) ("(") (.) (Lit_Other "*") (")") (Lit_Other "$") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RPATH) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [262 267] ) } spids: [261] ) ] spids: [261] ) ] spids: [228 254] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Name "$i"))} right: {(DQ (-o))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OUTPUT) op:Equal rhs:{(1)} spids:[294])] spids: [294] ) ] spids: [270 287] ) ] spids: [-1 298] ) ] spids: [117 300] ) spids: [111 115] ) (C {(${ VSub_Name GCC)} {(DQ ($ VSub_At "$@"))}) (FuncDef name: get_library_path body: (BraceGroup children: [ (ForEach iter_name: libdir iter_words: [{(${ VSub_Name LIB_DIRS)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(${ VSub_Name libdir) (/lib) ($ VSub_Number "$1") (.so)} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ (${ VSub_Name libdir) (/lib) ($ VSub_Number "$1") (.so))}) ] spids: [-1 354] ) ] spids: [-1 369] ) ] spids: [335 372] ) spids: [329 333] ) ] spids: [321] ) spids: [315 320] ) (FuncDef name: get_realpath body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:previous) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [394] ) ] spids: [392] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:next) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(DQ (${ VSub_Name previous))})] ) left_token: <Left_CommandSub "$("> spids: [403 411] ) } spids: [402] ) ] spids: [400] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name next))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous) op: Equal rhs: {(DQ (${ VSub_Name next))} spids: [432] ) ] spids: [432] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:next) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(DQ (${ VSub_Name previous))})] ) left_token: <Left_CommandSub "$("> spids: [441 449] ) } spids: [440] ) ] spids: [440] ) ] spids: [429 452] ) ) (C {(echo)} {(DQ (${ VSub_Name previous))}) ] spids: [389] ) spids: [383 388] ) (FuncDef name: get_otool_path body: (BraceGroup children: [ (Pipeline children: [ (C {(get_realpath)} {($ VSub_Number "$1")}) (C {(sed)} {(SQ <"s|^.*/bazel-out/|bazel-out/|">)}) ] negated: False ) ] spids: [475] ) spids: [469 474] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name RPATH))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (ForEach iter_name: lib iter_words: [{(${ VSub_Name LIBS)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:libpath) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_library_path)} {(${ VSub_Name lib)})] ) left_token: <Left_CommandSub "$("> spids: [533 539] ) } spids: [532] ) ] spids: [532] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name libpath))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(${ VSub_Name INSTALL_NAME_TOOL)} {(-change)} { (CommandSubPart command_list: (CommandList children: [(C {(get_otool_path)} {(DQ (${ VSub_Name libpath))})] ) left_token: <Left_CommandSub "$("> spids: [566 574] ) } {(DQ ("@loader_path/") (${ VSub_Name RPATH) (/lib) (${ VSub_Name lib) (.so))} {(DQ (${ VSub_Name OUTPUT))} ) ] spids: [-1 557] ) ] spids: [-1 595] ) ] spids: [529 598] ) spids: [523 527] ) ] spids: [-1 515] ) ] spids: [-1 600] ) ] )