(CommandList children: [ (C {(eval)} { (DQ ('set -- ') (CommandSubPart command_list: (CommandList children: [ (C {(getopt)} {(-o)} {(SQ <'hwx:f:'>)} {(-l)} {(help) (Lit_Comma ',') (watch) (Lit_Comma ',') (setup-file) (Lit_Other ':') (Lit_Comma ',') (extract) (Lit_Other ':') (Lit_Comma ',') (module-api) (Lit_Other ':') (Lit_Comma ',') (api-format) (Lit_Other ':') } {(--)} {(DQ ($ VSub_At '$@'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [7 39] ) ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:script) op:Equal rhs:{(EmptyPart)} spids:[42])] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script_args) op: Equal rhs: {(ArrayLiteralPart)} spids: [44] ) ] spids: [44] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:watch_sources) op:Equal rhs:{(EmptyPart)} spids:[49])] spids: [49] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:action) op:Equal rhs:{(setup)} spids:[51])] spids: [51] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:api_format) op:Equal rhs:{(markdown)} spids:[54])] spids: [54] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{($ VSub_Pound '$#')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [59 68] ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [74] ) ] spids: [74] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Case to_match: {(DQ ($ VSub_Name '$opt'))} arms: [ (case_arm pat_list: [{(-w)} {(--watch)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:watch_sources) op: Equal rhs: {(true)} spids: [97] ) ] spids: [97] ) ] spids: [92 95 99 16777215] ) (case_arm pat_list: [{(-x)} {(--extract)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(extract)} spids: [107] ) ] spids: [107] ) ] spids: [102 105 109 16777215] ) (case_arm pat_list: [{(-f)} {(--setup-file)}] action: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [ {(git) (Lit_Other ':') (//) (Lit_Other '*')} {(https) (Lit_Other ':') (//) (Lit_Other '*') (.git)} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:hash) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(sha256sum)}] redirects: [ (Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [143 151] ) } ] ) } spids: [140] ) ] spids: [140] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script) op: Equal rhs: { (DQ ($ VSub_Name '$HOME') (/.setup/git-clone/) (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [160 165] ) (-) ($ VSub_Name '$hash') ) } spids: [156] ) ] spids: [156] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_Name '$script'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$script'))}) (C {(git)} {(clone)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Name '$script'))} ) ] spids: [16777215 186] ) ] spids: [16777215 211] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script) op: PlusEqual rhs: {(/Setup)} spids: [214] ) ] spids: [214] ) ] spids: [127 137 216 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DPipe] children: [ (C {(realpath)} {(DQ ($ VSub_Number '$1'))}) (C {(echo)} {(DQ ($ VSub_Number '$1'))}) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [224 238] ) ) } spids: [222] ) ] spids: [222] ) ] spids: [219 220 240 16777215] ) ] spids: [118 124 243] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:program) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name script> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [248 253] ) ) } spids: [246] ) ] spids: [246] ) (C {(shift)}) ] spids: [112 115 260 16777215] ) (case_arm pat_list: [{(-h)} {(--help)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(show_help)} spids: [268] ) ] spids: [268] ) ] spids: [263 266 270 16777215] ) (case_arm pat_list: [{(--module-api)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(DQ ('show_api ') ($ VSub_Number '$1'))} spids: [276] ) ] spids: [276] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [273 274 284 16777215] ) (case_arm pat_list: [{(--api-format)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:api_format) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [290] ) ] spids: [290] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [287 288 297 16777215] ) (case_arm pat_list: [{(--)}] action: [(C {(Lit_Other ':')})] spids: [300 301 304 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:script_args) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name '$opt'))}])} spids: [310] ) ] spids: [310] ) ] spids: [307 308 318 16777215] ) ] spids: [83 89 321] ) ] spids: [71 323] ) ) (C {(shopt)} {(-s)} {(extglob)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name SETUP_INSTALL_DIR> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)}) spids: [337 341] ) ) } {(Lit_Other '=') (Lit_Other '=')} {(SQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ ($ VSub_Number '$0'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SETUP_INSTALL_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Number 0> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\/'>) ('*([^') (EscapedLiteralPart token: <Lit_EscapedChar '\\/'> ) ('])') } replace: {(Lit_Slash /) (..)} do_all: F do_prefix: F do_suffix: T ) spids: [371 382] ) } spids: [370] ) ] spids: [370] ) ] spids: [365 368 383 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [ {(echo)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('0: ') ($ VSub_Number '$0') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SETUP_INSTALL_DIR) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(which)} {(DQ ($ VSub_Number '$0'))})] ) left_token: <Left_CommandSub '$('> spids: [405 411] ) ) } spids: [403] ) ] spids: [403] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SETUP_INSTALL_DIR) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name SETUP_INSTALL_DIR> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\/'>) ('*')} replace: {(Lit_Slash /) (..)} do_all: F do_prefix: F do_suffix: T ) spids: [417 426] ) ) } spids: [415] ) ] spids: [415] ) ] spids: [386 387 428 16777215] ) ] spids: [356 362 431] ) ] spids: [16777215 353] ) ] spids: [16777215 433] ) ] )