(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<opensmtpd-extras>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<201703132115>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'OpenSMTPD addons'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://opensmtpd.org/'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <ISC>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'libressl-dev libevent-dev python2-dev mariadb-dev postgresql-dev\n'> 
                <'\thiredis-dev sqlite-dev'>
              )
            }
          spids: [39]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <-doc>)}
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://www.opensmtpd.org/archives/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\tremove-decls.patch'>
              )
            }
          spids: [51]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$srcdir') <'/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver')
              )
            }
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:options)
          op: assign_op.Equal
          rhs: {(DQ <'!check'>)}
          spids: [70]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_extras)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'\tfilter-monkey\n'> <'\tfilter-stub\n'> <'\tfilter-trace\n'> 
                <'\tfilter-void\n'> <'\tqueue-null\n'> <'\tqueue-python\n'> <'\tqueue-ram\n'> <'\tqueue-stub\n'> <'\tscheduler-python\n'> 
                <'\tscheduler-ram\n'> <'\tscheduler-stub\n'> <'\ttable-ldap\n'> <'\ttable-mysql\n'> <'\ttable-passwd\n'> <'\ttable-postgres\n'> 
                <'\ttable-python\n'> <'\ttable-redis\n'> <'\ttable-socketmap\n'> <'\ttable-sqlite\n'> <'\ttable-stub\n'> <'\t'>
              )
            }
          spids: [79]
        )
      ]
    )
    (command.ForEach
      iter_name: _extra
      iter_words: [{($ Id.VSub_DollarName '$_extras')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:subpackages)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$subpackages') <' opensmtpd-'> 
                        ($ Id.VSub_DollarName '$_extra') <':_package_extra'>
                      )
                    }
                  spids: [117]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$depends') <' opensmtpd-'> 
                        ($ Id.VSub_DollarName '$_extra')
                      )
                    }
                  spids: [126]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<local>} {<with_extras>})
            (command.Sentence child:(C {<local>} {<extra>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: extra
              iter_words: [{($ Id.VSub_DollarName '$_extras')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:with_extras)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$with_extras') <' --with-'> 
                                ($ Id.VSub_DollarName '$extra')
                              )
                            }
                          spids: [173]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} 
              {<--sysconfdir> <Id.Lit_Equals '='> <'/etc/smtpd'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} {<--libexecdir> <Id.Lit_Equals '='> <'/usr/lib'>} 
              {<--with-pie>} {<--with-mantype> <Id.Lit_Equals '='> <man>} {($ Id.VSub_DollarName '$with_extras')}
            )
            (C {<make>} {<Id.Lit_VarLike 'REDIS_CPPFLAGS='> (SQ <'-I /usr/include/hiredis'>)})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} {<install>})
          ]
        )
    )
    (command.ShFunction
      name: _package_extra
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'name='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name subpkgname>
                    suffix_op: (suffix_op.Unary tok:<Id.VOp1_Pound '#'> arg_word:{<opensmtpd->})
                  )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'OpenSMTPD '> ($ Id.VSub_DollarName '$name') <' addon'>)}
                  spids: [287]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [295]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/opensmtpd'>})
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib/opensmtpd/'> 
                ($ Id.VSub_DollarName '$name')
              } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/opensmtpd/'>}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'd841c63445ca674b368a5aa6012ae90e46b0c31b650067bdcea5badca3d818b1b732be880b2a18421fb39d07291dd413455944b178597bc13ae6ff5c75ac9aed  opensmtpd-extras-201703132115.tar.gz\n'
                > 
                <
'36efd3b6cf75728cc8b75b3d9d6bf464d1e949ccfbe6151ed53dbba0f9ee1e50eb61afcca05af302ab359bc9ea1136e7750a15e5f5b824899141298d3060782a  remove-decls.patch'
                >
              )
            }
          spids: [327]
        )
      ]
    )
  ]
)