(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<ejabberd>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<16.12>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'An erlang jabber server'>)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://www.ejabberd.im'>)}
          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 <'GPL2+'>)}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_erl_deps)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'erlang-asn1 erlang-crypto erlang-eldap erlang-mnesia\n'> 
                <'\terlang-public-key erlang-sasl erlang-ssl erlang-syntax-tools\n'> <'\t'>
              )
            }
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_erl_make_deps)
          op: assign_op.Equal
          rhs: {(DQ <'erlang-eunit erlang-parsetools'>)}
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <'erlang util-linux yaml '> ($ Id.VSub_DollarName '$_erl_deps'))}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends_dev)
          op: assign_op.Equal
          rhs: {(DQ <'erlang-dev expat-dev libressl-dev zlib-dev heimdal-dev yaml-dev git'>)}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$depends_dev') <' '> ($ Id.VSub_DollarName '$_erl_deps') <' '> 
                ($ Id.VSub_DollarName '$_erl_make_deps') <' automake autoconf'>
              )
            }
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgusers)
          op: assign_op.Equal
          rhs: {(DQ <ejabberd>)}
          spids: [71]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkggroups)
          op: assign_op.Equal
          rhs: {(DQ <ejabberd>)}
          spids: [76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <.pre-install>)}
          spids: [81]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$pkgname') <-doc>)
            }
          spids: [87]
        )
      ]
    )
    (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::https://github.com/processone/'> ($ Id.VSub_DollarName '$pkgname') <'/archive/'> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> 
                <'\thttps://github.com/processone/fast_tls/archive/1.0.7.tar.gz\n'> <'\tejabberd.initd\n'> <'\tejabberd.logrotate\n'> <'\tejabberd.confd\n'> 
                <'\tejabberd-16.01-ejabberdctl.patch\n'> <'\tmakefile.patch\n'> <'\tlibressl.patch\n'> <'\t'>
              )
            }
          spids: [95]
        )
      ]
    )
    (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: [116]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<mkdir>} {<deps>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mv>} {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/fast_tls-1.0.7'>} 
                  {(DQ ($ Id.VSub_DollarName '$builddir')) <'/deps/fast_tls'>}
                )
                (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'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<'./autogen.sh'>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} 
                  {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} {<--localstatedir> <Id.Lit_Equals '='> <'/var'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} 
                  {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<make>})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} 
                  {<install>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<install>} {<-d>} 
              {(${ Id.VSub_Name pkgdir) <'/var/spool/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<install>} {<-d>} 
              {(${ Id.VSub_Name pkgdir) <'/var/lib/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<install>} {<-D>} {<-m0644>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') 
                <.logrotate>
              } {(${ Id.VSub_Name pkgdir) <'/etc/logrotate.d/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<install>} {<-m755>} {<-D>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <.initd>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<install>} {<-m644>} {<-D>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <.confd>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/conf.d/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<chown>} {<-R>} {<ejabberd.ejabberd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/log/ejabberd'>}
            )
            (C {<chown>} {<-R>} {<ejabberd.ejabberd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/spool/ejabberd'>}
            )
            (C {<chown>} {<-R>} {<ejabberd.ejabberd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/ejabberd'>}
            )
            (C {<chgrp>} {<ejabberd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/ejabberd/ejabberd.yml'>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/ejabberd/ejabberdctl.cfg'>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/ejabberd'>}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'0a3c6e43cf258e84db214dbc250b8ba3  ejabberd-16.12.tar.gz\n'> 
                <'20d7727afc4fda08b04bc3f81cfe7907  1.0.7.tar.gz\n'> <'62242441aaed1025587dcc3b40d08e68  ejabberd.initd\n'> 
                <'f97c8a96160f30e0aecc9526c12e6606  ejabberd.logrotate\n'> <'fa61d30731cb4d818187d2e5e2fd766a  ejabberd.confd\n'> 
                <'583d01f6b6ac7f3cd1118462eaba1c39  ejabberd-16.01-ejabberdctl.patch\n'> <'4fb22399211c3a8f259de57fdbfefa0f  makefile.patch\n'> 
                <'6b540035f94b22b25af481a07eb3d49f  libressl.patch'>
              )
            }
          spids: [411]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'a7eeb9fe49ef141daab1be01838a7612dff9194a28c3dfc922cc691bb8c9b532  ejabberd-16.12.tar.gz\n'
                > <'35da558d86aec4abe571740f5f229cd03dbb3abffaf16991fe88304a3a5f72e2  1.0.7.tar.gz\n'> 
                <
'aed527edf2008becaa950eddffecdb1d9cb8a9a50e38cee9e51853c1189887cb  ejabberd.initd\n'
                > <'31780cac78736d285e46f445f8c8463a70f2aeb2683280c259129db11832ddd2  ejabberd.logrotate\n'> 
                <
'e1f690788cd1b5ecb334582af8e019602d297ef8b914a030de69bce2cc20fffd  ejabberd.confd\n'
                > 
                <
'fc971f9eba50c82013f20c78d3ba7f48bb4f70945e41951808b53ef9dbf0b898  ejabberd-16.01-ejabberdctl.patch\n'
                > <'4c939a05bc353a90a585143a5d981069aa7767563979595cef8637f7ab782fa7  makefile.patch\n'> 
                <'cb9e030f5df4c989f0e569f0569245b509139dff7c8fc2bb023beb4b9938e209  libressl.patch'>
              )
            }
          spids: [423]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'6e6f35aa266eea055d94fddc3edebf814bd53514a82c4544413bd88397d0372a05bbe9e922f1d8b808f3da9f8a0a14bdbfcfc052dbf6053d697252086306f71f  ejabberd-16.12.tar.gz\n'
                > 
                <
'46a3ebab09ec5e18b086c8c3e2a87a5d6a35e406e8988c48979d94c3e303d5f9a8bcdb1e8ce74266ba8c59fbb4a4310e445f5ad65f072d28a7b44a0bdec50b62  1.0.7.tar.gz\n'
                > 
                <
'e2310e1b5b471e5c27ce2ec5d5fc6549656f9f49ba1d65a515ebc3af6d3237a461894c6c4c55c8c6eb1b9be0b01573057591ead51eb9014f5cf1258d387c9fc8  ejabberd.initd\n'
                > 
                <
'47fd2cfd9177c4e978a9799a153ba74392a9891822221af8194686a40f6bf01f38644833e1e1f5416c6357e0bfb7ca3dae96f55a4fcd7cd629ec798d85a72807  ejabberd.logrotate\n'
                > 
                <
'96a571c0ab2be366e931bda423a61ef920cbaba2107e61ddbc501472ce3efe2804418cc6579c99310b902a9a99aaecb9284cf2420c071dbca2f670efb4034135  ejabberd.confd\n'
                > 
                <
'aeb1f4fc299691751fd687a07bf35dc77f43cb1d14f9ba59e7de050e6953a0051f1827bbd0e21fc84dd4cb745b5603b915ffdf6de2151d6e34b4a4720a0a77ab  ejabberd-16.01-ejabberdctl.patch\n'
                > 
                <
'36eacec7780ed95ffc310db30e34f9d5ba8ead65f8fc44fb06c7d825f7252effad83e07c4a010e65b80a63f4a1d985290e8a489906a8c225c306f5b5b642ce36  makefile.patch\n'
                > 
                <
'2579f21ab6428a8450399bea4d0c6f0967606d4cba73432942b34cf5445d037bed436f418e3c5aadec9a3525191824af1195f9e342ec7cbe20f99147445e4e6d  libressl.patch'
                >
              )
            }
          spids: [435]
        )
      ]
    )
  ]
)