(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<gomplate>}
          spids: [3]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_goname)
          op: assign_op.Equal
          rhs: {(DQ <'github.com/hairyhenderson/'> ($ Id.VSub_DollarName '$pkgname'))}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<2.0.0>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'A versatile Go template processor'>)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://github.com/hairyhenderson/gomplate'>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <MIT>)}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <ca-certificates>)}
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <go>)}
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz::'> 
                ($ Id.VSub_DollarName '$url') <'/archive/v'> ($ Id.VSub_DollarName '$pkgver') <.tar.gz>
              )
            }
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$srcdir') <'/src/'> ($ Id.VSub_DollarName '$_goname'))}
          spids: [60]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name builddir>
                    suffix_op: 
                      (suffix_op.Unary
                        tok: <Id.VOp1_Percent '%'>
                        arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                      )
                  )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mv>} 
                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                    ($ Id.VSub_DollarName '$pkgver')
                  } {(DQ ($ Id.VSub_DollarName '$builddir')) <'/'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<default_prepare>})
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<make>} {<build>} {<Id.Lit_VarLike 'GOPATH='> (DQ ($ Id.VSub_DollarName '$srcdir'))} 
              {<Id.Lit_VarLike 'VERSION='> (DQ ($ Id.VSub_DollarName '$pkgver'))} {<Id.Lit_VarLike 'COMMIT='> (DQ <unknown>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<go>} {<test>} {<-v>}]
                  more_env: [
                    (env_pair
                      name: GOPATH
                      val: {(DQ ($ Id.VSub_DollarName '$srcdir'))}
                      spids: [178]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.Simple
              words: [{<'./bin/gomplate'>} {<--help>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-D>} {<-m>} {<755>} {<'bin/gomplate'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/bin/gomplate'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'2e767adf798ebb52e455d38b2dac93939e780047a3cdd47b796d0a338769541e48b7417bc28605023e91d5ed01bc0201e2997ea37ed0eac4917a6ae3b2fa0734  gomplate-2.0.0.tar.gz'
                >
              )
            }
          spids: [245]
        )
      ]
    )
  ]
)