(CommandList children: [ (C {(set)} {(-e)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RUN_INSTALL_NAME_TOOL) op:Equal rhs:{(1)} spids:[143])] spids: [143] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(3)} {(Lit_Other ']')}) (C {(Lit_Other '[')} {(DQ (${ VSub_Number 1))} {(Lit_Other '=')} {(DQ (-I))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUN_INSTALL_NAME_TOOL) op: Equal rhs: {(EmptyPart)} spids: [184] ) ] spids: [184] ) ] spids: [16777215 178] ) ] spids: [16777215 186] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(2)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('usage: ') (${ VSub_Number 0) (' [-I] FRAMEWORK DESTINATION_DIR'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 203] ) ] spids: [16777215 225] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FRAMEWORK) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [238] ) ] spids: [238] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESTINATION_DIR) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [245] ) ] spids: [245] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FRAMEWORK_NAME) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ (${ VSub_Name FRAMEWORK))})] ) left_token: <Left_CommandSub '$('> spids: [255 263] ) ) } spids: [253] ) ] spids: [253] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name FRAMEWORK_NAME> suffix_op: (Slice begin: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:{(Lit_Digits 10)}) ) ) spids: [271 277] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ (.framework))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ (${ VSub_Number 0) (': ') (${ VSub_Name FRAMEWORK_NAME) (' does not end in .framework') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 291] ) ] spids: [16777215 316] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FRAMEWORK_NAME_NOEXT) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name FRAMEWORK_NAME> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name FRAMEWORK_NAME> prefix_op: VSub_Pound spids: [326 329] ) } ) right: (ArithWord w:{(Lit_Digits 10)}) ) spids: [325 335] ) } ) ) spids: [320 336] ) ) } spids: [318] ) ] spids: [318] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERSIONS) op: Equal rhs: {(DQ (${ VSub_Name FRAMEWORK) (/Versions))} spids: [343] ) ] spids: [343] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURRENT_VERSION_LINK) op: Equal rhs: {(DQ (${ VSub_Name VERSIONS) (/Current))} spids: [351] ) ] spids: [351] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURRENT_VERSION_ID) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(DQ (${ VSub_Name VERSIONS) (/Current))})] ) left_token: <Left_CommandSub '$('> spids: [361 370] ) ) } spids: [359] ) ] spids: [359] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURRENT_VERSION) op: Equal rhs: {(DQ (${ VSub_Name VERSIONS) (/) (${ VSub_Name CURRENT_VERSION_ID))} spids: [373] ) ] spids: [373] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (${ VSub_Name CURRENT_VERSION) (/) (${ VSub_Name FRAMEWORK_NAME_NOEXT))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ (${ VSub_Number 0) (': ') (${ VSub_Name FRAMEWORK_NAME) (' does not contain a dylib') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 410] ) ] spids: [16777215 435] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESTINATION) op: Equal rhs: {(DQ (${ VSub_Name DESTINATION_DIR) (/) (${ VSub_Name FRAMEWORK_NAME))} spids: [438] ) ] spids: [438] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name DESTINATION_DIR))}) (C {(rsync)} {(-acC)} {(--delete)} {(--exclude)} {(Headers)} {(--exclude)} {(PrivateHeaders)} {(--include)} {(SQ <'*.so'>)} {(DQ (${ VSub_Name CURRENT_VERSION) (/))} {(DQ (${ VSub_Name DESTINATION))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name RUN_INSTALL_NAME_TOOL))}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FRAMEWORK_DYLIB) op: Equal rhs: {(DQ (${ VSub_Name DESTINATION) (/) (${ VSub_Name FRAMEWORK_NAME_NOEXT))} spids: [556] ) ] spids: [556] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LC_ID_DYLIB_OLD) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(otool)} {(-l)} {(DQ (${ VSub_Name FRAMEWORK_DYLIB))}) (C {(grep)} {(-A10)} {(DQ ('^ *cmd LC_ID_DYLIB') (Lit_Other '$'))}) (C {(grep)} {(-m1)} {(DQ ('^ *name'))}) (C {(sed)} {(-Ee)} {(SQ <'s/^ *name (.*) \\(offset [0-9]+\\)$/\\1/'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [570 614] ) ) } spids: [568] ) ] spids: [568] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERSION_PATH) op: Equal rhs: { (DQ (/Versions/) (${ VSub_Name CURRENT_VERSION_ID) (/) (${ VSub_Name FRAMEWORK_NAME_NOEXT) ) } spids: [618] ) ] spids: [618] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LC_ID_DYLIB_NEW) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name LC_ID_DYLIB_OLD))}) (C {(sed)} {(-Ee)} { (DQ ('s%') (${ VSub_Name VERSION_PATH) (Lit_Other '$') ('%/') (${ VSub_Name FRAMEWORK_NAME_NOEXT) ('%') ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [633 661] ) ) } spids: [631] ) ] spids: [631] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name LC_ID_DYLIB_NEW))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (${ VSub_Name LC_ID_DYLIB_OLD))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(install_name_tool)} {(-id)} {(DQ (${ VSub_Name LC_ID_DYLIB_NEW))} {(DQ (${ VSub_Name FRAMEWORK_DYLIB))} ) ] spids: [16777215 689] ) ] spids: [16777215 709] ) ] spids: [16777215 517] ) ] spids: [16777215 711] ) ] )