(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 children: [ (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-eq)} {(3)} {(Lit_Other "]")}) (C {(Lit_Other "[")} {(DQ (${ VSub_Number 1))} {(Lit_Other "=")} {(DQ (-I))} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUN_INSTALL_NAME_TOOL) op: Equal rhs: {(SQ )} spids: [184] ) ] spids: [184] ) ] spids: [-1 178] ) ] spids: [-1 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_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[216])] ) (C {(exit)} {(1)}) ] spids: [-1 203] ) ] spids: [-1 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_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[307])] ) (C {(exit)} {(1)}) ] spids: [-1 291] ) ] spids: [-1 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_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[426])] ) (C {(exit)} {(1)}) ] spids: [-1 410] ) ] spids: [-1 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: False ) ] ) 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: False ) ] ) 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: [-1 689] ) ] spids: [-1 709] ) ] spids: [-1 517] ) ] spids: [-1 711] ) ] )