(CommandList
  children: [
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name srcdir>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
          spids: [54 58]
        )
      }
    )
    (Sentence child:(C {(.)} {(DQ ($ VSub_Name '$srcdir') (/init.sh))}) terminator:<Op_Semi ';'>)
    (C {(path_prepend_)} {(DQ ($ VSub_Name '$abs_aux_dir'))} {(.)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tmpdir)
          op: Equal
          rhs: {(vc-git-) ($ VSub_Dollar '$$')}
          spids: [77]
        )
      ]
      spids: [77]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:GIT_DIR)
              op: Equal
              rhs: {(EmptyPart)}
              spids: [81]
            )
            (assign_pair
              lhs: (LhsName name:GIT_WORK_TREE)
              op: Equal
              rhs: {(EmptyPart)}
              spids: [83]
            )
          ]
          spids: [81]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(unset)} {(GIT_DIR)} {(GIT_WORK_TREE)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[93])]
      spids: [93]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp Op_DAmp]
      children: [
        (C {(mkdir)} {($ VSub_Name '$tmpdir')})
        (C {(cd)} {($ VSub_Name '$tmpdir')})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (Subshell
                      child: (C {(git)} {(init)} {(-q)})
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [129]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [133]
                        )
                      ]
                      spids: [119 127]
                    )
                    (C {(skip_)} {(DQ ('git not found in PATH'))})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [117]
        )
        (C {(mkdir)} {(d)})
        (C {(touch)} {(d/a)} {(b)} {(c)})
        (C {(git)} {(config)} {(user.email)} {(DQ ('you@example.com'))})
        (C {(git)} {(config)} {(user.name)} {(DQ ('Your Name'))})
        (SimpleCommand
          words: [{(git)} {(add)} {(.)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[202])]
        )
        (C {(git)} {(commit)} {(-q)} {(-a)} {(-m)} {(log)})
        (SimpleCommand
          words: [{(printf)} {(SQ <'%s\\n'>)} {(b)} {(c)} {(d/a)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(expected)} spids:[236])]
        )
        (SimpleCommand
          words: [{(vc-list-files)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(actual)} spids:[245])]
        )
        (C {(compare)} {(expected)} {(actual)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(0)} spids:[261])]
          spids: [261]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)