(CommandList children: [ (FuncDef name: usage body: (BraceGroup children: [ (SimpleCommand words: [ {(echo)} { (DQ ('usage: ') ($ VSub_Number '$0') (' [--heads] [--tags] [-u|--upload-pack <upload-pack>]') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (SimpleCommand words: [{(echo)} {(DQ (' <repository> <refs>...'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (Sentence child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [12] ) spids: [7 11] ) (FuncDef name: die body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Star '$*'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [50] ) spids: [45 49] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exec) op:Equal rhs:{(EmptyPart)} spids:[70])] spids: [70] ) (WhileUntil keyword: <KW_While while> cond: [(C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-h)} {(--h)} {(--he)} {(--hea)} {(--head)} {(--heads)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:heads) op: Equal rhs: {(heads)} spids: [109] ) ] spids: [109] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [95 106 115 16777215] ) (case_arm pat_list: [{(-t)} {(--t)} {(--ta)} {(--tag)} {(--tags)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tags) op: Equal rhs: {(tags)} spids: [130] ) ] spids: [130] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [118 127 136 16777215] ) (case_arm pat_list: [ {(-u)} {(--u)} {(--up)} {(--upl)} {(--uploa)} {(--upload)} {(--upload-)} {(--upload-p)} {(--upload-pa)} {(--upload-pac)} {(--upload-pack)} ] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exec) op: Equal rhs: {(DQ ('--upload-pack=') ($ VSub_Number '$1'))} spids: [168] ) ] spids: [168] ) (C {(shift)}) ] spids: [139 162 176 16777215] ) (case_arm pat_list: [ {(-u) (Lit_Other '=') (Lit_Other '*')} {(--u) (Lit_Other '=') (Lit_Other '*')} {(--up) (Lit_Other '=') (Lit_Other '*')} {(--upl) (Lit_Other '=') (Lit_Other '*')} {(--uplo) (Lit_Other '=') (Lit_Other '*')} {(--uploa) (Lit_Other '=') (Lit_Other '*')} {(--upload) (Lit_Other '=') (Lit_Other '*')} {(--upload-) (Lit_Other '=') (Lit_Other '*')} {(--upload-p) (Lit_Other '=') (Lit_Other '*')} {(--upload-pa) (Lit_Other '=') (Lit_Other '*')} {(--upload-pac) (Lit_Other '=') (Lit_Other '*')} {(--upload-pack) (Lit_Other '=') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exec) op: Equal rhs: {(--upload-pack) (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ (z) ($ VSub_Number '$1'))} {(Lit_Other ':')} {(SQ <'z-[^=]*=\\(.*\\)'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [234 247] ) } spids: [231] ) ] spids: [231] ) (C {(shift)}) ] spids: [179 228 251 16777215] ) (case_arm pat_list: [{(--)}] action: [ (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (ControlFlow token:<ControlFlow_Break break>) ] spids: [254 255 263 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [(C {(usage)})] spids: [266 268 273 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [276 277 282 16777215] ) ] spids: [86 92 285] ) ] spids: [83 287] ) ) (Case to_match: {(DQ ($ VSub_Pound '$#'))} arms: [(case_arm pat_list:[{(0)}] action:[(C {(usage)})] spids:[298 299 303 16777215])] spids: [290 296 305] ) (Case to_match: {(DQ (',') ($ VSub_Name '$heads') (',') ($ VSub_Name '$tags') (','))} arms: [ (case_arm pat_list: [{(Lit_Comma ',') (Lit_Comma ',') (Lit_Comma ',')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:heads) op: Equal rhs: {(heads)} spids: [325] ) (assign_pair lhs: (LhsName name:tags) op: Equal rhs: {(tags)} spids: [328] ) (assign_pair lhs: (LhsName name:other) op: Equal rhs: {(other)} spids: [331] ) ] spids: [325] ) ] spids: [320 323 334 16777215] ) ] spids: [308 318 336] ) (C {(.)} {(git-parse-remote)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:peek_repo) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(get_remote_url)} {(DQ ($ VSub_At '$@'))})] ) left_token: <Left_CommandSub '$('> spids: [345 351] ) ) } spids: [343] ) ] spids: [343] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmp) op: Equal rhs: {(.ls-remote-) ($ VSub_Dollar '$$')} spids: [357] ) ] spids: [357] ) (C {(trap)} {(DQ ('rm -fr ') ($ VSub_Name '$tmp') ('-*'))} {(0)} {(1)} {(2)} {(3)} {(15)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmpdir) op: Equal rhs: {($ VSub_Name '$tmp') (-d)} spids: [379] ) ] spids: [379] ) (Pipeline children: [ (Case to_match: {(DQ ($ VSub_Name '$peek_repo'))} arms: [ (case_arm pat_list: [ {(http) (Lit_Other ':') (//) (Lit_Other '*')} {(https) (Lit_Other ':') (//) (Lit_Other '*')} {(ftp) (Lit_Other ':') (//) (Lit_Other '*')} ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$GIT_SSL_NO_VERIFY'))} {(-o)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(http.sslVerify)})] ) left_token: <Left_CommandSub '$('> spids: [429 437] ) ) } {(Lit_Other '=')} {(false)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:curl_extra_args) op: Equal rhs: {(DQ (-k))} spids: [450] ) ] spids: [450] ) ] spids: [16777215 447] ) ] spids: [16777215 456] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$GIT_CURL_FTP_NO_EPSV'))} {(-o)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(http.noEPSV)})] ) left_token: <Left_CommandSub '$('> spids: [474 482] ) ) } {(Lit_Other '=')} {(true)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:curl_extra_args) op: Equal rhs: {(DQ (${ VSub_Name curl_extra_args) (' --disable-epsv'))} spids: [495] ) ] spids: [495] ) ] spids: [16777215 492] ) ] spids: [16777215 504] ) (AndOr ops: [Op_DPipe] children: [ (C {(curl)} {(-nsf)} {($ VSub_Name '$curl_extra_args')} {(--header)} {(DQ ('Pragma: no-cache'))} {(DQ ($ VSub_Name '$peek_repo') (/info/refs))} ) (C {(echo)} {(DQ ('failed\tslurping'))}) ] ) ] spids: [392 411 534 16777215] ) (case_arm pat_list: [{(rsync) (Lit_Other ':') (//) (Lit_Other '*')}] action: [ (AndOr ops: [Op_DAmp Op_DAmp Op_DPipe] children: [ (C {(mkdir)} {($ VSub_Name '$tmpdir')}) (C {(rsync)} {(-rlq)} {(DQ ($ VSub_Name '$peek_repo') (/HEAD))} {($ VSub_Name '$tmpdir')} ) (C {(rsync)} {(-rq)} {(DQ ($ VSub_Name '$peek_repo') (/refs))} {($ VSub_Name '$tmpdir')} ) (BraceGroup children: [ (C {(echo)} {(DQ ('failed\tslurping'))}) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [579] ) ] ) (AndOr ops: [Op_DAmp Op_DAmp] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(DQ ($ VSub_Name '$tmpdir') (/HEAD))})] ) left_token: <Left_CommandSub '$('> spids: [596 603] ) } spids: [595] ) ] spids: [595] ) (Case to_match: {(DQ ($ VSub_Name '$head'))} arms: [ (case_arm pat_list: [{(ref) (Lit_Other ':') (SQ <' '>) (Lit_Other '*')}] action: [ (AndOr ops: [Op_DAmp Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ (z) ($ VSub_Name '$head'))} {(Lit_Other ':')} {(SQ <'zref: \\(.*\\)'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [627 640] ) } spids: [626] ) ] spids: [626] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:head) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(cat)} { (DQ ($ VSub_Name '$tmpdir') (/) ($ VSub_Name '$head') ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [646 654] ) } spids: [645] ) ] spids: [645] ) (ControlFlow token: <ControlFlow_Exit exit> ) ] ) ] spids: [617 623 16777215 661] ) ] spids: [608 614 661] ) (C {(echo)} {(DQ ($ VSub_Name '$head') ('\tHEAD'))}) ] ) (AndOr ops: [Op_DAmp] children: [ (Pipeline children: [ (Subshell child: (AndOr ops: [Op_DAmp] children: [ (C {(cd)} {($ VSub_Name '$tmpdir')}) (C {(find)} {(refs)} {(-type)} {(f)}) ] ) spids: [674 688] ) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(path)})] body: (DoGroup children: [ (SimpleCommand words: [{(tr)} {(-d)} {(SQ <'\\012'>)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$tmpdir') (/) ($ VSub_Name '$path'))} ) ] ) (C {(echo)} {(DQ ('\t') ($ VSub_Name '$path'))}) ] spids: [700 727] ) ) ] negated: F ) (C {(rm)} {(-fr)} {($ VSub_Name '$tmpdir')}) ] ) ] spids: [537 542 739 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-f)} {(DQ ($ VSub_Name '$peek_repo'))}) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DPipe] children: [ (C {(git)} {(bundle)} {(list-heads)} {(DQ ($ VSub_Name '$peek_repo'))}) (C {(echo)} {(DQ ('failed\tslurping'))}) ] ) ] spids: [16777215 759] ) ] else_action: [ (AndOr ops: [Op_DPipe] children: [ (C {(git-peek-remote)} {($ VSub_Name '$exec')} {(DQ ($ VSub_Name '$peek_repo'))}) (C {(echo)} {(DQ ('failed\tslurping'))}) ] ) ] spids: [782 803] ) ] spids: [742 744 806 16777215] ) ] spids: [384 390 808] ) (C {(sort)} {(-t)} {(SQ <'\t'>)} {(-k)} {(2)}) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(sha1)} {(path)})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$sha1'))} arms: [ (case_arm pat_list: [{(failed)}] action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})] spids: [846 847 854 16777215] ) ] spids: [837 843 857] ) (Case to_match: {(DQ ($ VSub_Name '$path'))} arms: [ (case_arm pat_list: [{(refs/heads/) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group) op: Equal rhs: {(heads)} spids: [874] ) ] spids: [874] ) ] spids: [869 871 877 16777215] ) (case_arm pat_list: [{(refs/tags/) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group) op: Equal rhs: {(tags)} spids: [885] ) ] spids: [885] ) ] spids: [880 882 888 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group) op: Equal rhs: {(other)} spids: [895] ) ] spids: [895] ) ] spids: [891 892 898 16777215] ) ] spids: [860 866 901] ) (Case to_match: { (DQ (',') ($ VSub_Name '$heads') (',') ($ VSub_Name '$tags') (',') ($ VSub_Name '$other') (',') ) } arms: [ (case_arm pat_list: [ {(Lit_Other '*') (Lit_Comma ',') ($ VSub_Name '$group') (Lit_Comma ',') (Lit_Other '*') } ] spids: [919 924 927 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [930 931 935 16777215] ) ] spids: [904 916 938] ) (Case to_match: {(DQ ($ VSub_Pound '$#'))} arms: [ (case_arm pat_list: [{(0)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {(yes)} spids: [954] ) ] spids: [954] ) ] spids: [950 951 957 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {(no)} spids: [964] ) ] spids: [964] ) (ForEach iter_name: pat do_arg_iter: T body: (DoGroup children: [ (Case to_match: {(DQ (/) ($ VSub_Name '$path'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/) ($ VSub_Name '$pat')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {(yes)} spids: [993] ) ] spids: [993] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [986 990 999 16777215] ) ] spids: [976 983 1002] ) ] spids: [973 1005] ) spids: [16777215 16777215] ) ] spids: [960 961 16777215 1008] ) ] spids: [941 947 1008] ) (Case to_match: {(DQ ($ VSub_Name '$match'))} arms: [ (case_arm pat_list: [{(no)}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [1020 1021 1026 16777215] ) ] spids: [1011 1017 1029] ) (C {(echo)} {(DQ ($ VSub_Name '$sha1') ('\t') ($ VSub_Name '$path'))}) ] spids: [834 1040] ) ) ] negated: F ) ] )