(command.CommandList children: [ (C {(Id.KW_Set set)} {(-euo)} {(pipefail)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPT_DIR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:98) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:102) command_list: (command.CommandList children: [ (C {(dirname)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: BASH_SOURCE span_id: 107 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {(Id.Lit_Digits 0)} ) ) ) ) } ) ] ) ) ) } ) (C {(pwd)}) ] ) ] ) ) ) } spids: [96] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:METEOR_WAREHOUSE_DIR) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:METEOR_WAREHOUSE_DIR span_id:126) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$HOME') (Id.Lit_Slash /) (.meteor)} ) ) ) } spids: [123] ) ] ) (command.Simple words: [{(echo)} {(-n)} {(DQ ('Finding meteor-tool installation (can take a few seconds)...'))}] redirects: [ (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'>&' span_id:143) fd:-1 arg_word:{(2)}) ] ) (C {(cd)} {(DQ ($ Id.VSub_DollarName '$SCRIPT_DIR') (/shell))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:METEOR_RELEASE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:162) command_list: (command.CommandList children: [ (command.Simple redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:163) fd: -1 arg_word: {(.meteor/release)} ) ] ) ] ) ) } spids: [161] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$METEOR_RELEASE'))} {(Id.Lit_Equals '=')} {(DQ ('METEOR@1.0.2'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:183) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TOOL_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:197) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(meteor)} {(show)} {(DQ ($ Id.VSub_DollarName '$METEOR_RELEASE'))}) (C {(grep)} {(-o)} { (SQ (Token id: Id.Lit_Chars val: 'meteor-tool@[0-9a-zA-Z_.-]*' span_id: 213 ) ) } ) ] negated: F ) ] ) ) } spids: [196] ) ] ) ] spids: [168 185] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TOOL_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:229) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(meteor)} {(show)} {(--ejson)} {($ Id.VSub_DollarName '$METEOR_RELEASE')} ) (C {(grep)} {(SQ (Token id:Id.Lit_Chars val:'^ *"tool":' span_id:243))}) (C {(sed)} {(-re)} { (SQ (Token id: Id.Lit_Chars val: 's/^.*"(meteor-tool@[^"]*)".*$/\\1/g' span_id: 254 ) ) } ) ] negated: F ) ] ) ) } spids: [228] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TOOLDIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:262) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$TOOL_VERSION')}) (C {(tr)} {(Id.Lit_Other '@')} {(/)}) ] negated: F ) ] ) ) } spids: [261] ) ] ) (command.Simple words: [{(echo)} {(DQ (' ') ($ Id.VSub_DollarName '$TOOL_VERSION'))}] redirects: [ (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'>&' span_id:284) fd:-1 arg_word:{(2)}) ] ) (C {(readlink)} {(-f)} {($ Id.VSub_DollarName '$METEOR_WAREHOUSE_DIR') (/packages/) ($ Id.VSub_DollarName '$TOOLDIR') (/mt-os.linux.x86_64/dev_bundle) } ) ] )