(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:__git_printf_supports_v) op: assign_op.Equal rhs: (word.Empty) spids: [289] ) ] ) (command.Simple words: [ {(printf)} {(-v)} {(__git_printf_supports_v)} {(--)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:300))} {(yes)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:305) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:308) fd:2 arg_word:{(1)}) ] ) (command.ShFunction name: __git_ps1_show_upstream body: (command.BraceGroup children: [ (C {(local)} {(key)} {(value)}) (C {(local)} {(svn_remote)} {(svn_url_pattern)} {(count)} {(n)}) (C {(local)} {(Id.Lit_VarLike 'upstream=') (git)} {(Id.Lit_VarLike 'legacy=') (DQ )} {(Id.Lit_VarLike 'verbose=') (DQ )} {(Id.Lit_VarLike 'name=') (DQ )} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_remote) op: assign_op.Equal rhs: {(sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:364))} spids: [363] ) ] ) (C {(local)} {(Id.Lit_VarLike 'output=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:376) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(git)} {(config)} {(-z)} {(--get-regexp)} { (SQ (Token id: Id.Lit_Chars val: '^(svn-remote\\..*\\.url|bash\\.showupstream)$' span_id: 386 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:389) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\0\\n' span_id:397))} {(SQ (Token id:Id.Lit_Chars val:'\\n ' span_id:401))} ) ] negated: F ) ] ) ) ) } ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:407) cond: [ (command.Sentence child: (C {(read)} {(-r)} {(key)} {(value)}) terminator: (Token id:Id.Op_Semi val:';' span_id:416) ) ] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$key'))} arms: [ (case_arm pat_list: [{(bash.showupstream)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_PS1_SHOWUPSTREAM) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$value'))} spids: [434] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name GIT_PS1_SHOWUPSTREAM))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:453) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ )} spids: [458] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:463) ) ] spids: [440 455] ) ] ) ] spids: [430 431 469 -1] ) (case_arm pat_list: [{(svn-remote.) (Id.Lit_Star '*') (.url)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: svn_remote index: (arith_expr.ArithWord w: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_remote span_id: 501 ) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } ) ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$value'))} spids: [478] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_url_pattern) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$svn_url_pattern') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:517) ) ('|') ($ Id.VSub_DollarName '$value') ) } spids: [514] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: {(svn) (Id.Lit_Other '+') (git)} spids: [523] ) ] ) ] spids: [472 475 532 -1] ) ] ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_TLess val:'<<<' span_id:540) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$output'))} ) ] ) (command.ForEach iter_name: option iter_words: [{(${ Id.VSub_Name GIT_PS1_SHOWUPSTREAM)}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$option'))} arms: [ (case_arm pat_list: [{(git)} {(svn)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$option'))} spids: [580] ) ] ) ] spids: [575 578 585 -1] ) (case_arm pat_list: [{(verbose)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:verbose) op: assign_op.Equal rhs: {(1)} spids: [591] ) ] ) ] spids: [588 589 594 -1] ) (case_arm pat_list: [{(legacy)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:legacy) op: assign_op.Equal rhs: {(1)} spids: [600] ) ] ) ] spids: [597 598 603 -1] ) (case_arm pat_list: [{(name)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: {(1)} spids: [609] ) ] ) ] spids: [606 607 612 -1] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$upstream'))} arms: [ (case_arm pat_list: [{(git)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: {(DQ ('@{upstream}'))} spids: [638] ) ] ) ] spids: [635 636 643 -1] ) (case_arm pat_list: [{(svn) (Id.Lit_Star '*')}] action: [ (C {(local)} {(-a)} {(svn_upstream)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_upstream) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:667) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:668) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(log)} {(--first-parent)} {(-1)} {(--grep) (Id.Lit_Equals '=') (DQ ('^git-svn-id: ') (Id.Lit_Other '\\') ('(') (braced_var_sub token: (Token id: Id.VSub_Name val: svn_url_pattern span_id: 686 ) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('??')} ) ) (Id.Lit_Other '\\') (')') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:694) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ] ) } spids: [666] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {(0)} right: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_upstream span_id: 710 ) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:717) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_upstream) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:svn_upstream span_id:724) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_upstream span_id: 728 ) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)}) ) ) ) } spids: [722] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_upstream) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:svn_upstream span_id:743) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {('@*')} ) ) } spids: [741] ) ] ) (C {(local)} {(Id.Lit_VarLike 'n_stop=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:svn_remote span_id:755) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:n) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:n span_id:771) ) right: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:n_stop span_id:775) ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:n) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svn_upstream) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_upstream span_id: 789 ) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_remote span_id: 792 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$n')} ) ) ) } ) ) } spids: [787] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$svn_upstream'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:815) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_SVN_ID span_id: 826 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(git-svn)} ) ) } spids: [824] ) ] ) ] spids: [804 817] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id: Id.VSub_Name val: svn_upstream span_id: 837 ) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {(Id.Lit_Slash /)} ) ) } spids: [835] ) ] ) ] ) ] spids: [700 719] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ('svn+git'))} right: {(DQ ($ Id.VSub_DollarName '$upstream'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:861) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:upstream) op: assign_op.Equal rhs: {(DQ ('@{upstream}'))} spids: [866] ) ] ) ] spids: [846 863] ) ] ) ] spids: [646 648 875 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$legacy'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:897) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:904) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-list)} {(--count)} {(--left-right)} {(DQ ($ Id.VSub_DollarName '$upstream')) (...HEAD)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:920) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } spids: [902] ) ] ) ] spids: [886 899] ) ] else_action: [ (C {(local)} {(commits)}) (command.If arms: [ (if_arm cond: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:commits) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:942) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-list)} {(--left-right)} {(DQ ($ Id.VSub_DollarName '$upstream')) (...HEAD)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:954) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } spids: [940] ) ] ) ] action: [ (C {(local)} {(commit)} {(Id.Lit_VarLike 'behind=') (0)} {(Id.Lit_VarLike 'ahead=') (0)} ) (command.ForEach iter_name: commit iter_words: [{($ Id.VSub_DollarName '$commits')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$commit'))} arms: [ (case_arm pat_list: [{(DQ ('<')) (Id.Lit_Star '*')}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:behind) ) ) ] spids: [995 999 1007 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:ahead) ) ) ] spids: [1010 1011 1019 -1] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$behind') ('\t') ($ Id.VSub_DollarName '$ahead') ) } spids: [1028] ) ] ) ] spids: [938 960] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: {(DQ )} spids: [1039] ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$verbose'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1066) ) ] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$count'))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ )} spids: [1088] ) ] ) ] spids: [1080 1082 1092 -1] ) (case_arm pat_list: [{(DQ ('0\t0'))}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ ('='))} spids: [1104] ) ] ) ] spids: [1095 1098 1109 -1] ) (case_arm pat_list: [{(DQ ('0\t')) (Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ ('>'))} spids: [1122] ) ] ) ] spids: [1112 1116 1127 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*') (DQ ('\t0'))}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ ('<'))} spids: [1140] ) ] ) ] spids: [1130 1134 1145 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ ('<>'))} spids: [1155] ) ] ) ] spids: [1148 1149 1160 -1] ) ] ) ] spids: [1055 1068] ) ] else_action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$count'))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ )} spids: [1186] ) ] ) ] spids: [1178 1180 1190 -1] ) (case_arm pat_list: [{(DQ ('0\t0'))}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(DQ (' u='))} spids: [1202] ) ] ) ] spids: [1193 1196 1207 -1] ) (case_arm pat_list: [{(DQ ('0\t')) (Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (DQ (' u+') (braced_var_sub token: (Token id:Id.VSub_Name val:count span_id:1224) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('0\t')} ) ) ) } spids: [1220] ) ] ) ] spids: [1210 1214 1230 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*') (DQ ('\t0'))}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (DQ (' u-') (braced_var_sub token: (Token id:Id.VSub_Name val:count span_id:1247) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {('\t0')} ) ) ) } spids: [1243] ) ] ) ] spids: [1233 1237 1253 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (DQ (' u+') (braced_var_sub token: (Token id:Id.VSub_Name val:count span_id:1267) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {('*\t')} ) ) (-) (braced_var_sub token: (Token id:Id.VSub_Name val:count span_id:1273) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {('\t*')} ) ) ) } spids: [1263] ) ] ) ] spids: [1256 1257 1279 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$count'))} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$name'))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1304) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:__git_ps1_upstream_name) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1310) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(--abbrev-ref)} {(DQ ($ Id.VSub_DollarName '$upstream'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1323) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } spids: [1309] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$ps1_expanded')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1351) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$p') (' ') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\$' span_id: 1360 ) ) ('{__git_ps1_upstream_name}') ) } spids: [1356] ) ] ) ] spids: [1328 1353] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$p') (' ') (${ Id.VSub_Name __git_ps1_upstream_name) ) } spids: [1368] ) ] ) (C {(unset)} {(__git_ps1_upstream_name)}) ] ) ] spids: [1285 1306] ) ] ) ] ) ] ) ) (command.ShFunction name: __git_ps1_colorize_gitstring body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:1427) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{}) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1432) ) ] action: [ (C {(local)} {(Id.Lit_VarLike 'c_red=') (SQ (Token id:Id.Lit_Chars val:'%F{red}' span_id:1441)) } ) (C {(local)} {(Id.Lit_VarLike 'c_green=') (SQ (Token id:Id.Lit_Chars val:'%F{green}' span_id:1449)) } ) (C {(local)} {(Id.Lit_VarLike 'c_lblue=') (SQ (Token id:Id.Lit_Chars val:'%F{blue}' span_id:1457)) } ) (C {(local)} {(Id.Lit_VarLike 'c_clear=') (SQ (Token id:Id.Lit_Chars val:'%f' span_id:1465))} ) ] spids: [1420 1434] ) ] else_action: [ (C {(local)} {(Id.Lit_VarLike 'c_red=') (SQ (Token id:Id.Lit_Chars val:'\\[\\e[31m\\]' span_id:1484)) } ) (C {(local)} {(Id.Lit_VarLike 'c_green=') (SQ (Token id:Id.Lit_Chars val:'\\[\\e[32m\\]' span_id:1492)) } ) (C {(local)} {(Id.Lit_VarLike 'c_lblue=') (SQ (Token id:Id.Lit_Chars val:'\\[\\e[1;34m\\]' span_id:1500)) } ) (C {(local)} {(Id.Lit_VarLike 'c_clear=') (SQ (Token id:Id.Lit_Chars val:'\\[\\e[0m\\]' span_id:1508)) } ) ] ) (C {(local)} {(Id.Lit_VarLike 'bad_color=') ($ Id.VSub_DollarName '$c_red')}) (C {(local)} {(Id.Lit_VarLike 'ok_color=') ($ Id.VSub_DollarName '$c_green')}) (C {(local)} {(Id.Lit_VarLike 'flags_color=') (DQ ($ Id.VSub_DollarName '$c_lblue'))}) (C {(local)} {(Id.Lit_VarLike 'branch_color=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$detached')} {(Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1554) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch_color) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$ok_color'))} spids: [1559] ) ] ) ] spids: [1543 1556] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:branch_color) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$bad_color'))} spids: [1568] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$branch_color') ($ Id.VSub_DollarName '$c'))} spids: [1577] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:z) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$c_clear') ($ Id.VSub_DollarName '$z'))} spids: [1585] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$w'))} {(Id.Lit_Equals '=')} {(DQ ('*'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1607) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$bad_color') ($ Id.VSub_DollarName '$w'))} spids: [1612] ) ] ) ] spids: [1592 1609] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$i'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1633) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$ok_color') ($ Id.VSub_DollarName '$i'))} spids: [1638] ) ] ) ] spids: [1622 1635] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$s'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1659) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$flags_color') ($ Id.VSub_DollarName '$s'))} spids: [1664] ) ] ) ] spids: [1648 1661] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$u'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1685) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$bad_color') ($ Id.VSub_DollarName '$u'))} spids: [1690] ) ] ) ] spids: [1674 1687] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$c_clear') ($ Id.VSub_DollarName '$r'))} spids: [1700] ) ] ) ] ) ) (command.ShFunction name: __git_eread body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'f=') (DQ ($ Id.VSub_Number '$1'))}) (C {(shift)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-r)} {(DQ ($ Id.VSub_DollarName '$f'))}) (command.Simple words: [{(read)} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:1744) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$f'))} ) ] ) ] ) ] ) ) (command.ShFunction name: __git_ps1 body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'exit=') ($ Id.VSub_QMark '$?')}) (C {(local)} {(Id.Lit_VarLike 'pcmode=') (no)}) (C {(local)} {(Id.Lit_VarLike 'detached=') (no)}) (C {(local)} {(Id.Lit_VarLike 'ps1pc_start=') (SQ (Token id:Id.Lit_Chars val:'\\u@\\h:\\w ' span_id:1819)) } ) (C {(local)} {(Id.Lit_VarLike 'ps1pc_end=') (SQ (Token id:Id.Lit_Chars val:'\\$ ' span_id:1827))} ) (C {(local)} {(Id.Lit_VarLike 'printf_format=') (SQ (Token id:Id.Lit_Chars val:' (%s)' span_id:1835))} ) (command.Case to_match: {(DQ ($ Id.VSub_Pound '$#'))} arms: [ (case_arm pat_list: [{(2)} {(3)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pcmode) op: assign_op.Equal rhs: {(yes)} spids: [1854] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ps1pc_start) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1858] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ps1pc_end) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1864] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:printf_format) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Number val:3 span_id:1873) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$printf_format')} ) ) ) } spids: [1870] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PS1) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$ps1pc_start') ($ Id.VSub_DollarName '$ps1pc_end') ) } spids: [1892] ) ] ) ] spids: [1849 1852 1899 -1] ) (case_arm pat_list: [{(0)} {(1)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:printf_format) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:1910) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$printf_format')} ) ) ) } spids: [1907] ) ] ) ] spids: [1902 1905 1917 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1923) arg_word: {($ Id.VSub_DollarName '$exit')} ) ] spids: [1920 1921 1928 -1] ) ] ) (C {(local)} {(Id.Lit_VarLike 'ps1_expanded=') (yes)}) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:2079) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_o child:{(PROMPT_SUBST)}) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ps1_expanded) op: assign_op.Equal rhs: {(no)} spids: [2098] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:BASH_VERSION span_id:2108) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (C {(shopt)} {(-q)} {(promptvars)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ps1_expanded) op: assign_op.Equal rhs: {(no)} spids: [2125] ) ] ) ] ) (C {(local)} {(repo_info)} {(rev_parse_exit_code)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repo_info) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2139) command_list: (command.CommandList children: [ (command.Simple words: [ {(git)} {(rev-parse)} {(--git-dir)} {(--is-inside-git-dir)} {(--is-bare-repository)} {(--is-inside-work-tree)} {(--short)} {(HEAD)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2160) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } spids: [2137] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rev_parse_exit_code) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '$?'))} spids: [2166] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$repo_info'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2184) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2189) arg_word: {($ Id.VSub_DollarName '$exit')} ) ] spids: [2173 2186] ) ] ) (C {(local)} {(Id.Lit_VarLike 'short_sha=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$rev_parse_exit_code'))} {(Id.Lit_Equals '=')} {(DQ (0))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2220) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:short_sha) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2228) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (single_quoted left: (Token id: Id.Left_SingleQuoteC val: "$'" span_id: 2231 ) tokens: [ (Token id: Id.Char_OneChar val: '\\n' span_id: 2232 ) ] ) } ) ) ) } spids: [2225] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repo_info) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2241) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (single_quoted left: (Token id: Id.Left_SingleQuoteC val: "$'" span_id: 2243 ) tokens: [ (Token id: Id.Char_OneChar val: '\\n' span_id: 2244 ) ] ) ('*') } ) ) ) } spids: [2238] ) ] ) ] spids: [2205 2222] ) ] ) (C {(local)} {(Id.Lit_VarLike 'inside_worktree=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2259) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2262) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2263)] ) } ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repo_info) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2272) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2274) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2275)] ) ('*') } ) ) ) } spids: [2269] ) ] ) (C {(local)} {(Id.Lit_VarLike 'bare_repo=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2287) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2290) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2291)] ) } ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repo_info) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2300) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2302) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2303)] ) ('*') } ) ) ) } spids: [2297] ) ] ) (C {(local)} {(Id.Lit_VarLike 'inside_gitdir=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2315) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2318) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2319)] ) } ) ) ) } ) (C {(local)} {(Id.Lit_VarLike 'g=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:repo_info span_id:2330) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:2332) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:2333)] ) ('*') } ) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$inside_worktree'))} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_HIDE_IF_PWD_IGNORED span_id: 2366 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2379) command_list: (command.CommandList children: [ (C {(git)} {(config)} {(--bool)} {(bash.hideIfPwdIgnored)}) ] ) ) ) } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')} ) (C {(git)} {(check-ignore)} {(-q)} {(.)}) ] ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2414) arg_word: {($ Id.VSub_DollarName '$exit')} ) ] spids: [2341 2411] ) ] ) (C {(local)} {(Id.Lit_VarLike 'r=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'b=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'step=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'total=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2463) ) ] action: [ (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/head-name))} {(b)} ) (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/msgnum))} {(step)} ) (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/end))} {(total)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-merge/interactive))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2510) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|REBASE-i'))} spids: [2515] ) ] ) ] spids: [2498 2512] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|REBASE-m'))} spids: [2524] ) ] ) ] ) ] spids: [2451 2465] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2548) ) ] action: [ (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/next))} {(step)} ) (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/last))} {(total)} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/rebasing))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2585) ) ] action: [ (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/head-name))} {(b)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|REBASE'))} spids: [2600] ) ] ) ] spids: [2573 2587] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/rebase-apply/applying))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2618) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|AM'))} spids: [2623] ) ] ) ] spids: [2606 2620] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|AM/REBASE'))} spids: [2632] ) ] ) ] ) ] spids: [2536 2550] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/MERGE_HEAD))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2653) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|MERGING'))} spids: [2658] ) ] ) ] spids: [2641 2655] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/CHERRY_PICK_HEAD))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2676) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|CHERRY-PICKING'))} spids: [2681] ) ] ) ] spids: [2664 2678] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/REVERT_HEAD))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2699) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|REVERTING'))} spids: [2704] ) ] ) ] spids: [2687 2701] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_DollarName '$g') (/BISECT_LOG))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2722) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {(DQ ('|BISECTING'))} spids: [2727] ) ] ) ] spids: [2710 2724] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$b'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2748) ) ] action: [(C {(Id.Lit_Other ':')})] spids: [2737 2750] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-h)} {(DQ ($ Id.VSub_DollarName '$g') (/HEAD))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2768) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2779 ) command_list: (command.CommandList children: [ (command.Simple words: [{(git)} {(symbolic-ref)} {(HEAD)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2786) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } spids: [2777] ) ] ) ] spids: [2756 2770] ) ] else_action: [ (C {(local)} {(Id.Lit_VarLike 'head=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(__git_eread)} {(DQ ($ Id.VSub_DollarName '$g') (/HEAD))} {(head)} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2814) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2819) arg_word: {($ Id.VSub_DollarName '$exit')} ) ] spids: [2802 2816] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:head span_id:2834) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('ref: ')}) ) ) } spids: [2831] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$head'))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$b'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2856) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:detached) op: assign_op.Equal rhs: {(yes)} spids: [2861] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2867 ) command_list: (command.CommandList children: [ (command.Case to_match: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_DESCRIBE_STYLE span_id: 2874 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: (word.Empty) ) ) ) } arms: [ (case_arm pat_list: [{(contains)}] action: [ (C {(git)} {(describe)} {(--contains)} {(HEAD)} ) ] spids: [2882 2884 2895 -1] ) (case_arm pat_list: [{(branch)}] action: [ (C {(git)} {(describe)} {(--contains)} {(--all)} {(HEAD)} ) ] spids: [2898 2900 2913 -1] ) (case_arm pat_list: [{(describe)}] action: [(C {(git)} {(describe)} {(HEAD)})] spids: [2916 2918 2927 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')} {(default)}] action: [ (C {(git)} {(describe)} {(--tags)} {(--exact-match)} {(HEAD)} ) ] spids: [2930 2936 2949 -1] ) ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 2954 ) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } spids: [2865] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$short_sha') (...))} spids: [2963] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: {(DQ ('(') ($ Id.VSub_DollarName '$b') (')'))} spids: [2970] ) ] ) ] spids: [2841 2858] ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$step'))} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$total'))} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3011) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$r') (' ') ($ Id.VSub_DollarName '$step') (/) ($ Id.VSub_DollarName '$total') ) } spids: [3016] ) ] ) ] spids: [2988 3013] ) ] ) (C {(local)} {(Id.Lit_VarLike 'w=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'i=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 's=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'u=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'c=') (DQ )}) (C {(local)} {(Id.Lit_VarLike 'p=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$inside_gitdir'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3088) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$bare_repo'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3108) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c) op: assign_op.Equal rhs: {(DQ ('BARE:'))} spids: [3113] ) ] ) ] spids: [3093 3110] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: {(DQ ('GIT_DIR!'))} spids: [3122] ) ] ) ] ) ] spids: [3073 3090] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (true))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$inside_worktree'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3146) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_SHOWDIRTYSTATE span_id: 3159 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 3172 ) command_list: (command.CommandList children: [ (C {(git)} {(config)} {(--bool)} {(bash.showDirtyState)}) ] ) ) ) } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')} ) ] ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(diff)} {(--no-ext-diff)} {(--quiet)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:w) op: assign_op.Equal rhs: {(DQ ('*'))} spids: [3206] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(diff)} {(--no-ext-diff)} {(--cached)} {(--quiet)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: {(DQ ('+'))} spids: [3224] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$short_sha'))} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$i'))} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3253) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:i) op: assign_op.Equal rhs: {(DQ ('#'))} spids: [3258] ) ] ) ] spids: [3230 3255] ) ] ) ] spids: [3151 3193] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_SHOWSTASHSTATE span_id: 3278 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (command.Simple words: [{(git)} {(rev-parse)} {(--verify)} {(--quiet)} {(refs/stash)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:3298) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s) op: assign_op.Equal rhs: {(DQ (Id.Lit_Other '$'))} spids: [3305] ) ] ) ] spids: [3270 3302] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_SHOWUNTRACKEDFILES span_id: 3323 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 3336 ) command_list: (command.CommandList children: [ (C {(git)} {(config)} {(--bool)} {(bash.showUntrackedFiles)} ) ] ) ) ) } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (false))} {(Id.Lit_RBracket ']')} ) (command.Simple words: [ {(git)} {(ls-files)} {(--others)} {(--exclude-standard)} {(--directory)} {(--no-empty-directory)} {(--error-unmatch)} {(--)} {(SQ (Token id:Id.Lit_Chars val:':/*' span_id:3376))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:3379) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:3382) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:u) op: assign_op.Equal rhs: { (DQ ('%') (braced_var_sub token: (Token id:Id.VSub_Name val:ZSH_VERSION span_id:3393) suffix_op: (suffix_op.Unary op_id: Id.VTest_Plus arg_word: {(Id.Lit_Percent '%')} ) ) ) } spids: [3389] ) ] ) ] spids: [3315 3386] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_SHOWUPSTREAM span_id: 3412 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3418) ) ] action: [(C {(__git_ps1_show_upstream)})] spids: [3404 3420] ) ] ) ] spids: [3131 3148] ) ] ) (C {(local)} {(Id.Lit_VarLike 'z=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:GIT_PS1_STATESEPARATOR span_id:3438) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(DQ (' '))}) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: GIT_PS1_SHOWCOLORHINTS span_id: 3472 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3478) ) ] action: [(C {(__git_ps1_colorize_gitstring)})] spids: [3452 3480] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:b span_id:3492) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {(refs) (Id.Lit_Slash /) (heads) (Id.Lit_Slash /)} ) ) } spids: [3490] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$ps1_expanded')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3524) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:__git_ps1_branch_name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$b')} spids: [3529] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (DQ (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:3535) ) ('{__git_ps1_branch_name}') ) } spids: [3533] ) ] ) ] spids: [3501 3526] ) ] ) (C {(local)} {(Id.Lit_VarLike 'f=') (DQ ($ Id.VSub_DollarName '$w') ($ Id.VSub_DollarName '$i') ($ Id.VSub_DollarName '$s') ($ Id.VSub_DollarName '$u') ) } ) (C {(local)} {(Id.Lit_VarLike 'gitstring=') (DQ ($ Id.VSub_DollarName '$c') ($ Id.VSub_DollarName '$b') (braced_var_sub token: (Token id:Id.VSub_Name val:f span_id:3562) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {($ Id.VSub_DollarName '$z') ($ Id.VSub_DollarName '$f')} ) ) ($ Id.VSub_DollarName '$r') ($ Id.VSub_DollarName '$p') ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$pcmode')} {(Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3584) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: __git_printf_supports_v span_id: 3595 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(yes)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3606) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gitstring) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 3612 ) command_list: (command.CommandList children: [ (C {(printf)} {(--)} {(DQ ($ Id.VSub_DollarName '$printf_format'))} {(DQ ($ Id.VSub_DollarName '$gitstring'))} ) ] ) ) } spids: [3611] ) ] ) ] spids: [3589 3608] ) ] else_action: [ (C {(printf)} {(-v)} {(gitstring)} {(--)} {(DQ ($ Id.VSub_DollarName '$printf_format'))} {(DQ ($ Id.VSub_DollarName '$gitstring'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PS1) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$ps1pc_start') ($ Id.VSub_DollarName '$gitstring') ($ Id.VSub_DollarName '$ps1pc_end') ) } spids: [3650] ) ] ) ] spids: [3573 3586] ) ] else_action: [ (C {(printf)} {(--)} {(DQ ($ Id.VSub_DollarName '$printf_format'))} {(DQ ($ Id.VSub_DollarName '$gitstring'))} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:3678) arg_word: {($ Id.VSub_DollarName '$exit')} ) ] ) ) ] )