(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<cacti>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<1.1.24>}
          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 <'The complete rrdtool-based graphing solution'>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://www.cacti.net'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <noarch>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <'GPL2+'>)}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgusers)
          op: assign_op.Equal
          rhs: {(DQ <cacti>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkggroups)
          op: assign_op.Equal
          rhs: {(DQ <www-data>)}
          spids: [40]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <'bash perl coreutils net-snmp-tools rrdtool ttf-dejavu'>)}
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-doc '> ($ Id.VSub_DollarName '$pkgname') 
                <'-lang '> ($ Id.VSub_DollarName '$pkgname') <'-setup '> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'-php5:_php '> 
                ($ Id.VSub_DollarName '$pkgname') <'-php7:_php\n'> <'\t'>
              )
            }
          spids: [54]
        )
      ]
    )
    (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') 
                <-setup.post-install>
              )
            }
          spids: [71]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'http://www.cacti.net/downloads/'> ($ Id.VSub_DollarName '$pkgname') <-> 
                ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'.crontab\n'> <'\t'> 
                ($ Id.VSub_DollarName '$pkgname') <'.nginx.conf\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <'.php-fpm.conf\n'> <'\t'>
              )
            }
          spids: [79]
        )
      ]
    )
    (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: [98]
        )
      ]
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname')
              } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/'> ($ Id.VSub_DollarName '$pkgname')} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname')} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/log'>}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<cp>} {<-r>} {<Id.Lit_Star '*'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                    ($ Id.VSub_DollarName '$pkgname') <'/'>
                  }
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<install>} {<-Dm600>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') <.crontab>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/crontabs/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<rm>} {<-fr>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/locales/po'>
              } 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/locales/update-pot.sh'>
              }
            )
            (C {<rm>} {<-fr>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/fonts'>
              }
            )
            (C {<ln>} {<-s>} {<'/usr/share/fonts/ttf-dejavu'>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/'> ($ Id.VSub_DollarName '$pkgname') 
                <'/fonts'>
              }
            )
            (C {<ln>} {<-s>} {<'/var/lib/'> ($ Id.VSub_DollarName '$pkgname') <'/fonts'>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/fonts'>
              }
            )
            (C {<ln>} {<-s>} {<.>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$pkgname')
              }
            )
            (command.Sentence child:(C {<local>} {<dir>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: dir
              iter_words: [{<cache>} {<plugins>} {<resource>} {<rra>} {<scripts>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<mv>} 
                          {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                            ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$dir')
                          } 
                          {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/'> 
                            ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$dir')
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (C {<chown>} {<-R>} 
                      {($ Id.VSub_DollarName '$pkgusers') <Id.Lit_Colon ':'> 
                        ($ Id.VSub_DollarName '$pkggroups')
                      } 
                      {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/'> 
                        ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$dir')
                      }
                    )
                    (C {<ln>} {<-s>} 
                      {<'/var/lib/'> ($ Id.VSub_DollarName '$pkgname') <'/'> 
                        ($ Id.VSub_DollarName '$dir')
                      } 
                      {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                        ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$dir')
                      }
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mv>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                    ($ Id.VSub_DollarName '$pkgname') <'/log'>
                  } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/log/'> ($ Id.VSub_DollarName '$pkgname')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<chown>} {<-R>} 
              {($ Id.VSub_DollarName '$pkgusers') <Id.Lit_Colon ':'> 
                ($ Id.VSub_DollarName '$pkggroups')
              } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/log/'> ($ Id.VSub_DollarName '$pkgname')}
            )
            (C {<ln>} {<-s>} {<'/var/log/'> ($ Id.VSub_DollarName '$pkgname')} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/log'>
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mv>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                    ($ Id.VSub_DollarName '$pkgname') <'/include/config.php'>
                  } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'/config.php'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<ln>} {<-s>} {<'/etc/'> ($ Id.VSub_DollarName '$pkgname') <'/config.php'>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/config.php'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: doc
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<default_doc>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname')
              }
            )
            (C {<cd>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname')
              }
            )
            (C {<mv>} {<docs>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/'>
              }
            )
            (command.Sentence child:(C {<local>} {<file>}) terminator:<Id.Op_Semi _>)
            (command.ForEach
              iter_name: file
              iter_words: [
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<find>} {<'./'>} {<-name>} {(DQ <LICENSE>)} {<-o>} {<-name>} {(DQ <NEWS>)} {<-o>} 
                        {<-name>} {(DQ <'README*'>)} {<-o>} {<-name>} {(DQ <VERSION>)} {<-o>} {<-name>} {(DQ <CHANGELOG>)} {<-o>} {<-name>} 
                        {(DQ <'*.rst'>)}
                      )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                        ($ Id.VSub_DollarName '$pkgname') <'/'> 
                        (braced_var_sub
                          token: <Id.VSub_Name file>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VOp1_Percent '%'>
                              arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                            )
                        )
                      }
                    )
                    (C {<mv>} {($ Id.VSub_DollarName '$file')} 
                      {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                        ($ Id.VSub_DollarName '$pkgname') <'/'> ($ Id.VSub_DollarName '$file')
                      }
                    )
                  ]
                )
            )
            (C {<install>} {<-Dm644>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') 
                <.nginx.conf>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/docs/txt/nginx.conf'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: lang
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (localisations)'>)}
                  spids: [684]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_if)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'lang '> ($ Id.VSub_DollarName '$pkgname') <'='> 
                        ($ Id.VSub_DollarName '$pkgver') <-r> ($ Id.VSub_DollarName '$pkgrel')
                      )
                    }
                  spids: [691]
                )
              ]
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/locales/LC_MESSAGES'>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/js/LC_MESSAGES'>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/phpmailer/language'>
              }
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/locales/LC_MESSAGES/'> <Id.Lit_Star '*'>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/locales/LC_MESSAGES'>
              }
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/js/LC_MESSAGES/'> <Id.Lit_Star '*'>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/js/LC_MESSAGES'>
              }
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/phpmailer/language/'> <Id.Lit_Star '*'> <lang> <Id.Lit_Star '*'> <.php>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/include/phpmailer/language'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: setup
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgdesc') <' (initial setup)'>)}
                  spids: [820]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$pkgname') <' '> ($ Id.VSub_DollarName '$pkgname') 
                        <-doc>
                      )
                    }
                  spids: [827]
                )
              ]
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname')
              }
            )
            (C {<mv>} 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/install'>
              } 
              {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/'> <Id.Lit_Star '*'> <.sql>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/share/webapps/'> 
                ($ Id.VSub_DollarName '$pkgname') <'/'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: _php
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'php='> 
                (braced_var_sub
                  token: <Id.VSub_Name subpkgname>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VOp1_Pound '#'>
                      arg_word: {($ Id.VSub_DollarName '$pkgname') <->}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$pkgdesc') <' ('> ($ Id.VSub_DollarName '$php') 
                        <' dependencies)'>
                      )
                    }
                  spids: [898]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_if)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$php') <'-config '> ($ Id.VSub_DollarName '$pkgname') 
                        <'='> ($ Id.VSub_DollarName '$pkgver') <-r> ($ Id.VSub_DollarName '$pkgrel')
                      )
                    }
                  spids: [907]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$php') <' '> ($ Id.VSub_DollarName '$php') <'-gd '> 
                        ($ Id.VSub_DollarName '$php') <'-gmp '> ($ Id.VSub_DollarName '$php') <'-json '> ($ Id.VSub_DollarName '$php') <'-ldap '> 
                        ($ Id.VSub_DollarName '$php') <'-pdo_mysql\n'> <'\t\t'> ($ Id.VSub_DollarName '$php') <'-openssl '> ($ Id.VSub_DollarName '$php') 
                        <'-posix '> ($ Id.VSub_DollarName '$php') <'-snmp '> ($ Id.VSub_DollarName '$php') <'-sockets '> 
                        ($ Id.VSub_DollarName '$php') <'-xml '> ($ Id.VSub_DollarName '$php') <-zlib>
                      )
                    }
                  spids: [919]
                )
              ]
            )
            (C {<install>} {<-Dm644>} 
              {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') 
                <.php-fpm.conf>
              } 
              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/etc/'> ($ Id.VSub_DollarName '$php') 
                <'/php-fpm.d/'> ($ Id.VSub_DollarName '$pkgname') <.conf>
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'85599b3cd5c3aad79f1d5213558df3047329484704ef54963fc14a31257f762d4ab3f3d201073e7ba62700f60c9a14d458c8eb193f263ef5edad62ce3c544ed7  cacti-1.1.24.tar.gz\n'
                > 
                <
'70f47dbbca76489fc3a84452ee8065f9571ee627b3e346cd3c866501d723a609372c4fbd7e53c4bdcdb22439d876d78847f8902dfa43f3f66b2329639e795ab9  cacti.crontab\n'
                > 
                <
'9b3fe765c6196c0e4988efaa7236d8a8b945725548371b4a0e2a371de374c9577a908d58dcef5a4e59e089ca923cfeb7c5ddea9ee983a5115239052cf9b8ab59  cacti.nginx.conf\n'
                > 
                <
'695a5e8439ef0ed29068c87b1d711f66c5a24cf31c3c213784f83d6aef8608a07e99bfa2343a6487762572b6022926c3846f704494c7806e9a1aa2c49e18513b  cacti.php-fpm.conf'
                >
              )
            }
          spids: [979]
        )
      ]
    )
  ]
)