(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<artifactory-oss>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_pkgname)
          op: assign_op.Equal
          rhs: {<artifactory>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<4.16.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 <'Open source Maven repository manager'>)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'https://www.jfrog.com/open-source/'>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <noarch>)}
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <AGPL3>)}
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <'jetty-runner openjdk8-jre-base'>)}
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <'unzip zip'>)}
          spids: [43]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'.pre-install '> ($ Id.VSub_DollarName '$pkgname') 
                <.post-install>
              )
            }
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgusers)
          op: assign_op.Equal
          rhs: {(DQ <artifact>)}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkggroups)
          op: assign_op.Equal
          rhs: {(DQ <artifact>)}
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://jcenter.bintray.com/org/artifactory/oss/jfrog-'> 
                ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$pkgver') <'/jfrog-'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver') <'.zip\n'> <'\t'> ($ Id.VSub_DollarName '$_pkgname') <.confd>
              )
            }
          spids: [66]
        )
      ]
    )
    (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: [82]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<default_prepare>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'etc/storage.properties'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_span_id: 135
                      stdin_parts: [
                        <'type=derby\n'>
                        <'url=jdbc:derby:{db.home};create=true\n'>
                        <'driver=org.apache.derby.jdbc.EmbeddedDriver\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<sed>} {<-i>} {(SQ <'s|${artifactory.home}/logs|${artifactory.logs}|'>)} 
                  {<'etc/logback.xml'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<cd>} {<webapps>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<zip>} {<-d>} {($ Id.VSub_DollarName '$_pkgname') <.war>} 
                  {<'WEB-INF/lib/tomcat-juli-'> <Id.Lit_Star '*'> <.jar>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<unzip>} {($ Id.VSub_DollarName '$_pkgname') <.war>} {<'WEB-INF/web.xml'>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<patch>} {<-l>} {<'WEB-INF/web.xml'>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLessDash '<<-'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_span_id: 238
                          stdin_parts: [
                            <'@@ -159,8 +159,5 @@\n'>
                            <'         <url-pattern>/ui/*</url-pattern>\n'>
                            <'     </servlet-mapping>\n'>
                            <'\n'>
                            <'-    <welcome-file-list>\n'>
                            <'-        <welcome-file>TC7-49422</welcome-file>\n'>
                            <'-    </welcome-file-list>\n'>
                            <'\n'>
                            <' </web-app>\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<zip>} {<-u>} {($ Id.VSub_DollarName '$_pkgname') <.war>} {<'WEB-INF/web.xml'>})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'libdir='> 
                (DQ ($ Id.VSub_DollarName '$pkgdir') <'/var/lib/'> ($ Id.VSub_DollarName '$_pkgname'))
              }
            )
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<644>} {<-D>} 
                  {<'webapps/'> ($ Id.VSub_DollarName '$_pkgname') <.war>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/java/'> ($ Id.VSub_DollarName '$_pkgname') <.war>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<750>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<-d>} {(DQ ($ Id.VSub_DollarName '$libdir'))} {(DQ ($ Id.VSub_DollarName '$libdir')) <'/etc'>} 
                  {(DQ ($ Id.VSub_DollarName '$libdir')) <'/data'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<755>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<-d>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/log/'> ($ Id.VSub_DollarName '$_pkgname')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<ln>} {<-s>} {<'/var/log/'> ($ Id.VSub_DollarName '$_pkgname')} 
                  {(DQ ($ Id.VSub_DollarName '$libdir')) <'/logs'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<local>} {<f>})
            (command.ForEach
              iter_name: f
              iter_words: [{<artifactory.system.properties>} {<mimetypes.xml>} {<storage.properties>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<install>} {<-m>} {<644>} {<-D>} {<'etc/'> ($ Id.VSub_DollarName '$f')} 
                          {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> 
                            ($ Id.VSub_DollarName '$_pkgname') <'/'> ($ Id.VSub_DollarName '$f')
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<ln>} {<-s>} 
                          {<'/etc/'> ($ Id.VSub_DollarName '$_pkgname') <'/'> 
                            ($ Id.VSub_DollarName '$f')
                          } {(DQ ($ Id.VSub_DollarName '$libdir')) <'/etc/'> ($ Id.VSub_DollarName '$f')}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<640>} {<-o>} {<root>} {<-g>} {($ Id.VSub_DollarName '$pkggroups')} 
                  {<'etc/storage.properties'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$_pkgname') 
                    <'/storage.properties'>
                  }
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<600>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<'etc/artifactory.config.xml'>} {(DQ ($ Id.VSub_DollarName '$libdir')) <'/etc/'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m>} {<644>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<'etc/logback.xml'>} {(DQ ($ Id.VSub_DollarName '$libdir')) <'/etc/'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d'>})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<ln>} {<-s>} {<jetty-runner>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d/'> 
                    ($ Id.VSub_DollarName '$_pkgname')
                  }
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<install>} {<-m>} {<644>} {<-D>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$_pkgname') <.confd>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/conf.d/'> ($ Id.VSub_DollarName '$_pkgname')}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'ce7c65ef9afde2aab3c0cc8b4c9e6a069483f101dccb475a8bd3a851c88dd96c3154c2ff1202139aee6f14efbb4d17477dcdd54f2360caddc5d888c657e3b16d  jfrog-artifactory-oss-4.16.0.zip\n'
                > 
                <
'2701ea102da77b86be3b9aa75d5aa92fd5d81081ae1c835aaea49b0f0fd015bd5b32128ba913afda10fac122eec2d0bd1e203af4ee3d13106c3e66e7d1b83498  artifactory.confd'
                >
              )
            }
          spids: [641]
        )
      ]
    )
  ]
)