(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<elasticsearch>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<5.2.1>}
          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 <'Open Source, Distributed, RESTful Search Engine'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://www.elastic.co/products/elasticsearch'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <'x86 x86_64'>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <ASL-2.0>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <'java-jna-native>=4.1 openjdk8-jre'>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [40]
        )
      ]
    )
    (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: [44]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <-doc>)}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://artifacts.elastic.co/downloads/'> ($ Id.VSub_DollarName '$pkgname') <'/'> 
                ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'.initd\n'> 
                <'\t'> ($ Id.VSub_DollarName '$pkgname') <'.confd\n'> <'\tREADME.alpine\n'> <'\t'>
              )
            }
          spids: [56]
        )
      ]
    )
    (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: [75]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:default_module)
          op: assign_op.Equal
          rhs: {<transport-netty4>}
          spids: [85]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_modules)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'lang-mustache\n'> <'\t  reindex\n'> <'\t  ingest-common\n'> 
                <'\t  lang-expression\n'> <'\t  lang-groovy\n'> <'\t  percolator\n'> <'\t  aggs-matrix-stats\n'> <'\t  lang-painless\n'> 
                <'\t  transport-netty3'>
              )
            }
          spids: [88]
        )
      ]
    )
    (command.ForEach
      iter_name: _mod
      iter_words: [{($ Id.VSub_DollarName '$_modules')}]
      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') <' '> ($ Id.VSub_DollarName '$pkgname') 
                        <-> ($ Id.VSub_DollarName '$_mod') <':_'> 
                        (braced_var_sub
                          token: <Id.VSub_Name _mod>
                          suffix_op: 
                            (suffix_op.PatSub
                              pat: {<->}
                              replace: {<_>}
                              replace_mode: Id.Lit_Slash
                            )
                        )
                      )
                    }
                  spids: [113]
                )
              ]
            )
            (C {<eval>} 
              {
                (DQ <_> 
                  (braced_var_sub
                    token: <Id.VSub_Name _mod>
                    suffix_op: (suffix_op.PatSub pat:{<->} replace:{<_>} replace_mode:Id.Lit_Slash)
                  ) <'() { _builtin_module '> ($ Id.VSub_DollarName '$_mod') <'; }'>
                )
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_basedir)
          op: assign_op.Equal
          rhs: {(DQ <'/usr/share/java/'> ($ Id.VSub_DollarName '$pkgname'))}
          spids: [152]
        )
      ]
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'destdir='> 
                (DQ ($ Id.VSub_DollarName '$pkgdir') <'/'> ($ Id.VSub_DollarName '$_basedir'))
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'confdir='> 
                (DQ ($ Id.VSub_DollarName '$pkgdir') <'/etc/'> ($ Id.VSub_DollarName '$pkgname'))
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'docdir='> 
                (DQ ($ Id.VSub_DollarName '$pkgdir') <'/usr/share/doc/elasticsearch'>)
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'heapsize='> (DQ <256m>)})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<install>} {<-dm755>} {(DQ ($ Id.VSub_DollarName '$destdir')) <'/lib'>} 
              {(DQ ($ Id.VSub_DollarName '$destdir')) <'/modules'>} {(DQ ($ Id.VSub_DollarName '$destdir')) <'/bin'>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m644>} {<-t>} {(DQ ($ Id.VSub_DollarName '$destdir')) <'/lib'>} 
                  {<'lib/'> <Id.Lit_Star '*'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<install>} {<-dm755>} {(DQ ($ Id.VSub_DollarName '$docdir'))})
            (C {<install>} {<-dm755>} {(DQ ($ Id.VSub_DollarName '$confdir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m644>} {<-t>} {(DQ ($ Id.VSub_DollarName '$confdir'))} 
                  {<'config/'> <Id.Lit_Star '*'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<find>} {<bin>} {<-type>} {<f>} {<-name>} {<Id.Lit_Star '*'> <.bat>} {<-exec>} {<rm>} {<-f>} 
              {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>)}
            )
            (C {<find>} {<bin>} {<-type>} {<f>} {<-name>} {<Id.Lit_Star '*'> <.exe>} {<-exec>} {<rm>} {<-f>} 
              {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>)}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m755>} {<-t>} {(DQ ($ Id.VSub_DollarName '$destdir')) <'/bin'>} 
                  {<'bin/'> <Id.Lit_Star '*'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<install>} {<-dm755>} 
              {
                (DQ ($ Id.VSub_DollarName '$destdir') <'/modules/'> 
                  ($ Id.VSub_DollarName '$default_module')
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m644>} {<-t>} 
                  {
                    (DQ ($ Id.VSub_DollarName '$destdir') <'/modules/'> 
                      ($ Id.VSub_DollarName '$default_module')
                    )
                  } {<'modules/'> (DQ ($ Id.VSub_DollarName '$default_module')) <'/'> <Id.Lit_Star '*'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<sed>} {<-i>} {<-e>} {(DQ <'s|^-Xms.*|-Xms'> ($ Id.VSub_DollarName '$heapsize') <'|'>)} 
              {<-e>} {(DQ <'s|^-Xmx.*|-Xmx'> ($ Id.VSub_DollarName '$heapsize') <'|'>)} 
              {($ Id.VSub_DollarName '$confdir') <'/jvm.options'>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (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')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (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')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m644>} {<-D>} 
                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/README.alpine'>} {(DQ ($ Id.VSub_DollarName '$docdir'))}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _builtin_module
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'name='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} 
              {<Id.Lit_VarLike 'destdir='> 
                (DQ ($ Id.VSub_DollarName '$subpkgdir') <'/'> ($ Id.VSub_DollarName '$_basedir') 
                  <'/modules/'> ($ Id.VSub_DollarName '$name')
                )
              }
            )
            (C {<install>} {<-dm755>} {(DQ ($ Id.VSub_DollarName '$destdir'))})
            (C {<install>} {<-m644>} {<-t>} {(DQ ($ Id.VSub_DollarName '$destdir'))} 
              {(DQ ($ Id.VSub_DollarName '$builddir')) <'/modules/'> ($ Id.VSub_DollarName '$name') 
                <'/'> <Id.Lit_Star '*'>
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'aa8734c1e1111987d45e8dd64b5f8a0473955c48e09e6f1875e877090c21070fc18768b413e7b0c20652cec9ebd9bb6836a2c014cf8159b041f0d22b28ad5a08  elasticsearch-5.2.1.tar.gz\n'
                > 
                <
'dc916861497d4a589d6b3ab70d90ff9970e4d57003ed82d08c5f90dec337f995dcabf2556b7a27ade926e846ad435392f7845acfe9280dce17b4c172d85328ae  elasticsearch.initd\n'
                > 
                <
'2ab1baf1b5c8782f3f371ba221aadd3e841abc62175f0b1ddcfc68d711e2370465124e076f8cc2e549c25a1da9db8c90172b2f410bd6bbe4153f0e831620b6ba  elasticsearch.confd\n'
                > 
                <
'6de81485cdc059afef58382862e4155482463fde0b604aaa8dbe904c778b841467c4a383a5e54acd09e3436f1fb7be9923e001fb77bd3d7894e113a5e0f4036b  README.alpine'
                >
              )
            }
          spids: [607]
        )
      ]
    )
  ]
)