(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTIONS_KEEPDASHDASH) op: assign_op.Equal rhs: (word.Empty) spids: [13] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTIONS_SPEC) op: assign_op.Equal rhs: { (DQ ('git repack [options]\n') ('--\n') ('a pack everything in a single pack\n') ('A same as -a, and turn unreachable objects loose\n') ('d remove redundant packs, and run git-prune-packed\n') ('f pass --no-reuse-delta to git-pack-objects\n') ('F pass --no-reuse-object to git-pack-objects\n') ('n do not run git-update-server-info\n') ('q,quiet be quiet\n') ('l pass --local to git-pack-objects\n') ('unpack-unreachable= with -A, do not loosen objects older than this\n') (' Packing constraints\n') ('window= size of the window used for delta compression\n') ('window-memory= same as the above, but limit memory size instead of entries count\n') ('depth= limits the maximum delta depth\n') ('max-pack-size= maximum size of each packfile\n') ) } spids: [15] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUBDIRECTORY_OK) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:Yes span_id:38))} spids: [36] ) ] ) (C {(.)} {(git-sh-setup)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:no_update_info) op: assign_op.Equal rhs: (word.Empty) spids: [46] ) (assign_pair lhs: (sh_lhs_expr.Name name:all_into_one) op: assign_op.Equal rhs: (word.Empty) spids: [48] ) (assign_pair lhs: (sh_lhs_expr.Name name:remove_redundant) op: assign_op.Equal rhs: (word.Empty) spids: [50] ) (assign_pair lhs: (sh_lhs_expr.Name name:unpack_unreachable) op: assign_op.Equal rhs: (word.Empty) spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:local) op: assign_op.Equal rhs: (word.Empty) spids: [54] ) (assign_pair lhs: (sh_lhs_expr.Name name:no_reuse) op: assign_op.Equal rhs: (word.Empty) spids: [56] ) (assign_pair lhs: (sh_lhs_expr.Name name:extra) op: assign_op.Equal rhs: (word.Empty) spids: [58] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:60) cond: [(C {(test)} {($ Id.VSub_Pound '$#')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-n)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:no_update_info) op: assign_op.Equal rhs: {(t)} spids: [86] ) ] ) ] spids: [83 84 89 -1] ) (case_arm pat_list: [{(-a)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_into_one) op: assign_op.Equal rhs: {(t)} spids: [95] ) ] ) ] spids: [92 93 98 -1] ) (case_arm pat_list: [{(-A)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_into_one) op: assign_op.Equal rhs: {(t)} spids: [104] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unpack_unreachable) op: assign_op.Equal rhs: {(--unpack-unreachable)} spids: [108] ) ] ) ] spids: [101 102 111 -1] ) (case_arm pat_list: [{(--unpack-unreachable)}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unpack_unreachable) op: assign_op.Equal rhs: {(DQ ('--unpack-unreachable=') ($ Id.VSub_Number '$2'))} spids: [118] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:123) ) (C {(shift)}) ] spids: [114 115 127 -1] ) (case_arm pat_list: [{(-d)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:remove_redundant) op: assign_op.Equal rhs: {(t)} spids: [133] ) ] ) ] spids: [130 131 136 -1] ) (case_arm pat_list: [{(-q)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_QUIET) op: assign_op.Equal rhs: {(t)} spids: [142] ) ] ) ] spids: [139 140 145 -1] ) (case_arm pat_list: [{(-f)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:no_reuse) op: assign_op.Equal rhs: {(--no-reuse-delta)} spids: [151] ) ] ) ] spids: [148 149 154 -1] ) (case_arm pat_list: [{(-F)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:no_reuse) op: assign_op.Equal rhs: {(--no-reuse-object)} spids: [160] ) ] ) ] spids: [157 158 163 -1] ) (case_arm pat_list: [{(-l)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:local) op: assign_op.Equal rhs: {(--local)} spids: [169] ) ] ) ] spids: [166 167 172 -1] ) (case_arm pat_list: [{(--max-pack-size)} {(--window)} {(--window-memory)} {(--depth)}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:extra) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$extra') (' ') ($ Id.VSub_Number '$1') ('=') ($ Id.VSub_Number '$2') ) } spids: [185] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:193) ) (C {(shift)}) ] spids: [175 182 197 -1] ) (case_arm pat_list: [{(--)}] action: [ (command.Sentence child: (C {(shift)}) terminator: (Token id:Id.Op_Semi val:';' span_id:204) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:206) ) ] spids: [200 201 207 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(usage)})] spids: [210 211 215 -1] ) ] ) (C {(shift)}) ] ) ) (command.Case to_match: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:229) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(config)} {(--bool)} {(repack.usedeltabaseoffset)}) (C {(echo)} {(true)}) ] ) ] ) ) ) } arms: [ (case_arm pat_list: [{(true)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:extra) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$extra') (' --delta-base-offset'))} spids: [252] ) ] ) ] spids: [248 249 258 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PACKDIR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$GIT_OBJECT_DIRECTORY') (/pack))} spids: [263] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PACKTMP) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/.tmp-) ($ Id.VSub_Dollar '$$') (-pack))} spids: [269] ) ] ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$PACKTMP')) (-) (Id.Lit_Star '*')}) (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'rm -f "$PACKTMP"-*' span_id:290))} {(0)} {(1)} {(2)} {(3)} {(15)} ) (command.Case to_match: {(DQ (',') ($ Id.VSub_DollarName '$all_into_one') (','))} arms: [ (case_arm pat_list: [{(Id.Lit_Comma ',') (Id.Lit_Comma ',')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'--unpacked --incremental' span_id:324))} spids: [322] ) ] ) ] spids: [317 319 328 -1] ) (case_arm pat_list: [{(Id.Lit_Comma ',') (t) (Id.Lit_Comma ',')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: (word.Empty) spids: [336] ) (assign_pair lhs: (sh_lhs_expr.Name name:existing) op: assign_op.Equal rhs: (word.Empty) spids: [338] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$PACKDIR'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:352) ) ] action: [ (command.ForEach iter_name: e iter_words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:363) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {(DQ ($ Id.VSub_DollarName '$PACKDIR'))}) (command.Pipeline children: [ (C {(find)} {(.)} {(-type)} {(f)} {(-name)} {(SQ (Token id:Id.Lit_Chars val:'*.pack' span_id:383))} ) (C {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: 's/^\\.\\///' span_id: 395 ) ) } {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/\\.pack$//' span_id:401))} ) ] negated: F ) ] ) ] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} { (DQ ($ Id.VSub_DollarName '$PACKDIR') (/) ($ Id.VSub_DollarName '$e') (.keep) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:423) ) ] action: [(C {(Id.Lit_Other ':')} {(keep)})] spids: [409 425] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:existing) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$existing') (' ') ($ Id.VSub_DollarName '$e') ) } spids: [436] ) ] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$existing'))}) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$unpack_unreachable'))}) (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$remove_redundant'))}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$args') (' ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 510 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ Id.VSub_DollarName '$unpack_unreachable') ) } ) (C {(tr)} { (SQ (Token id: Id.Lit_Chars val: ' ' span_id: 522 ) ) } {(.)} ) ] negated: F ) ] ) ) ) } spids: [506] ) ] ) ] spids: [450 483] ) ] ) ] spids: [341 354] ) ] ) ] spids: [330 333 536 -1] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$PACKDIR'))}) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:551)) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$args') (' ') ($ Id.VSub_DollarName '$local') (' ') (braced_var_sub token: (Token id:Id.VSub_Name val:GIT_QUIET span_id:561) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonPlus arg_word:{(-q)}) ) (' ') ($ Id.VSub_DollarName '$no_reuse') ($ Id.VSub_DollarName '$extra') ) } spids: [554] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:names) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:571) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(pack-objects)} {(--keep-true-parents)} {(--honor-pack-keep)} {(--non-empty)} {(--all)} {(--reflog)} {($ Id.VSub_DollarName '$args')} {(DQ ($ Id.VSub_DollarName '$PACKTMP'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:588) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ) } spids: [570] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:599) arg_word: {(1)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$names'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:614) ) ] action: [(C {(say)} {(Nothing)} {(new)} {(to)} {(pack.)})] spids: [603 616] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rollback) op: assign_op.Equal rhs: (word.Empty) spids: [645] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: (word.Empty) spids: [647] ) ] ) (command.ForEach iter_name: name iter_words: [{($ Id.VSub_DollarName '$names')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: sfx iter_words: [{(pack)} {(idx)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {(pack-) ($ Id.VSub_DollarName '$name') (.) ($ Id.VSub_DollarName '$sfx')} spids: [674] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/) ($ Id.VSub_DollarName '$file'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:693) ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(rm)} {(-f)} { (DQ ($ Id.VSub_DollarName '$PACKDIR') (/old-) ($ Id.VSub_DollarName '$file') ) } ) (C {(mv)} {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/) ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/old-) ($ Id.VSub_DollarName '$file'))} ) (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {(t)} spids: [728] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:732) ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rollback) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$rollback') (' ') ($ Id.VSub_DollarName '$file') ) } spids: [738] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$failed'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:759) ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$failed'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rollback_failure) op: assign_op.Equal rhs: (word.Empty) spids: [783] ) ] ) (command.ForEach iter_name: file iter_words: [{($ Id.VSub_DollarName '$rollback')}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(mv)} { (DQ ($ Id.VSub_DollarName '$PACKDIR') (/old-) ($ Id.VSub_DollarName '$file') ) } {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/) ($ Id.VSub_DollarName '$file'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rollback_failure) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$rollback_failure') (' ') ($ Id.VSub_DollarName '$file') ) } spids: [815] ) ] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$rollback_failure'))})] action: [ (command.Simple words: [{(echo)} {(DQ ('WARNING: Some packs in use have been renamed by'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:842) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('WARNING: prefixing old- to their name, in order to'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:852) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('WARNING: replace them with the new version of the'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:862) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('WARNING: file. But the operation failed, and'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:872) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('WARNING: attempt to rename them back to their'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:882) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('WARNING: original names also failed.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:892) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [ {(echo)} { (DQ ('WARNING: Please rename them in ') ($ Id.VSub_DollarName '$PACKDIR') (' manually:') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:902) fd: -1 arg_word: {(2)} ) ] ) (command.ForEach iter_name: file iter_words: [{($ Id.VSub_DollarName '$rollback_failure')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Simple words: [ {(echo)} { (DQ ('WARNING: old-') ($ Id.VSub_DollarName '$file') (' -> ') ($ Id.VSub_DollarName '$file') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:926) fd: -1 arg_word: {(2)} ) ] ) ] ) ) ] spids: [826 837] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:943) arg_word: {(1)} ) ] spids: [770 780] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fullbases) op: assign_op.Equal rhs: (word.Empty) spids: [953] ) ] ) (command.ForEach iter_name: name iter_words: [{($ Id.VSub_DollarName '$names')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fullbases) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$fullbases') (' pack-') ($ Id.VSub_DollarName '$name')) } spids: [966] ) ] ) (C {(chmod)} {(a-w)} {(DQ ($ Id.VSub_DollarName '$PACKTMP') (-) ($ Id.VSub_DollarName '$name') (.pack))} ) (C {(chmod)} {(a-w)} {(DQ ($ Id.VSub_DollarName '$PACKTMP') (-) ($ Id.VSub_DollarName '$name') (.idx))} ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(mv)} {(-f)} {(DQ ($ Id.VSub_DollarName '$PACKTMP') (-) ($ Id.VSub_DollarName '$name') (.pack))} {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/pack-) ($ Id.VSub_DollarName '$name') (.pack))} ) (C {(mv)} {(-f)} {(DQ ($ Id.VSub_DollarName '$PACKTMP') (-) ($ Id.VSub_DollarName '$name') (.idx))} {(DQ ($ Id.VSub_DollarName '$PACKDIR') (/pack-) ($ Id.VSub_DollarName '$name') (.idx))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1040) ) ] ) ] ) ) (command.ForEach iter_name: name iter_words: [{($ Id.VSub_DollarName '$names')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(rm)} {(-f)} { (DQ ($ Id.VSub_DollarName '$PACKDIR') (/old-pack-) ($ Id.VSub_DollarName '$name') (.idx)) } ) (C {(rm)} {(-f)} { (DQ ($ Id.VSub_DollarName '$PACKDIR') (/old-pack-) ($ Id.VSub_DollarName '$name') (.pack) ) } ) ] ) ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(DQ ($ Id.VSub_DollarName '$remove_redundant'))} {(Id.Lit_Equals '=')} {(t)}) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$existing'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {(DQ ($ Id.VSub_DollarName '$PACKDIR'))}) (command.ForEach iter_name: e iter_words: [{($ Id.VSub_DollarName '$existing')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ (' ') ($ Id.VSub_DollarName '$fullbases') (' '))} arms: [ (case_arm pat_list: [ {(Id.Lit_Star '*') (DQ (' ') ($ Id.VSub_DollarName '$e') (' ')) (Id.Lit_Star '*') } ] spids: [1158 1165 1167 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$e') (.pack))} {(DQ ($ Id.VSub_DollarName '$e') (.idx))} {(DQ ($ Id.VSub_DollarName '$e') (.keep))} ) ] spids: [1170 1171 1192 -1] ) ] ) ] ) ) ] ) ] ) ) ] spids: [1108 1121] ) ] ) (C {(git)} {(prune-packed)} { (braced_var_sub token: (Token id:Id.VSub_Name val:GIT_QUIET span_id:1212) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonPlus arg_word:{(-q)}) ) } ) ] spids: [1089 1101] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$no_update_info'))} arms: [ (case_arm pat_list: [{(t)}] action: [(C {(Id.Lit_Other ':')})] spids: [1228 1229 1233 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(git)} {(update-server-info)})] spids: [1235 1236 1242 -1] ) ] ) ] )