(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description) op: assign_op.Equal rhs: {(SQ <'bisect can handle submodules'>)} spids: [4] ) ] redirects: [] ) (C {<.>} {<'./test-lib.sh'>}) (C {<.>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/lib-submodule-update.sh'>}) (command.ShFunction name: git_bisect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [ Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp ] children: [ (command.Simple words: [{<git>} {<status>} {<-su>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})] more_env: [] do_fork: T ) (command.Simple words: [{<ls>} {<-1pR>} {<Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<expect>})] more_env: [] do_fork: T ) (C {<tar>} {<cf>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/tmp.tar'>)} {<Id.Lit_Star '*'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GOOD='> name:GOOD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {<--verify>} {<HEAD>}) right: <Id.Eof_RParen _> ) } spids: [68] ) ] redirects: [] ) (C {<git>} {<checkout>} {(DQ ($ Id.VSub_Number 1))}) (command.Simple words: [{<echo>} {(DQ <foo>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<bar>})] more_env: [] do_fork: T ) (C {<git>} {<add>} {<bar>}) (C {<git>} {<commit>} {<-m>} {(DQ <'bisect bad'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BAD='> name:BAD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {<--verify>} {<HEAD>}) right: <Id.Eof_RParen _> ) } spids: [127] ) ] redirects: [] ) (C {<git>} {<reset>} {<--hard>} {<HEAD> <Id.Lit_Other '^'> <Id.Lit_Other '^'>}) (C {<git>} {<submodule>} {<update>}) (C {<git>} {<bisect>} {<start>}) (C {<git>} {<bisect>} {<good>} {($ Id.VSub_DollarName GOOD)}) (C {<rm>} {<-rf>} {<Id.Lit_Star '*'>}) (C {<tar>} {<xf>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/tmp.tar'>)}) (command.Simple words: [{<git>} {<status>} {<-su>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<actual>})] more_env: [] do_fork: T ) (command.Simple words: [{<ls>} {<-1pR>} {<Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<actual>})] more_env: [] do_fork: T ) (C {<test_cmp>} {<expect>} {<actual>}) (C {<git>} {<bisect>} {<bad>} {($ Id.VSub_DollarName BAD)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<test_submodule_switch>} {(DQ <git_bisect>)}) (C {<test_done>}) ] )