(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(rspamd)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(1.6.4)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[18])]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ("Fast, free and open-source spam filtering system"))}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ("https://rspamd.com"))}
          spids: [26]
        )
      ]
      spids: [26]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch)
          op: Equal
          rhs: {(DQ ("x86_64 x86 armhf ppc64le"))}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (BSD))} spids:[36])]
      spids: [36]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ("!check"))} spids:[41])]
      spids: [41]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgusers)
          op: Equal
          rhs: {($ VSub_Name "$pkgname")}
          spids: [46]
        )
      ]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkggroups)
          op: Equal
          rhs: {($ VSub_Name "$pkgname")}
          spids: [49]
        )
      ]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: 
            {
              (DQ ("cmake ragel perl lua-dev glib-dev pcre-dev icu-dev\n") 
                ("\tlibevent-dev sqlite-dev libressl-dev file-dev curl-dev\n") ("\tgd-dev fann-dev")
              )
            }
          spids: [52]
        )
      ]
      spids: [52]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:install)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$pkgname") (.pre-install))}
          spids: [59]
        )
      ]
      spids: [59]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-client ") 
                ($ VSub_Name "$pkgname") ("-utils::noarch\n") ("\t") ($ VSub_Name "$pkgname") ("-controller::noarch ") ($ VSub_Name "$pkgname") 
                ("-fuzzy::noarch\n") ("\t") ($ VSub_Name "$pkgname") ("-proxy::noarch\n") ("\t")
              )
            }
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver") 
                (".tar.gz::https://github.com/vstakhov/") ($ VSub_Name "$pkgname") (/archive/) ($ VSub_Name "$pkgver") (".tar.gz\n") ("\t") ($ VSub_Name "$pkgname") 
                (".logrotated\n") ("\t") ($ VSub_Name "$pkgname") (".initd\n") ("\t") ($ VSub_Name "$pkgname") (".confd\n") 
                ("\tcmakelists.patch\n") ("\tworker.conf.in\n") ("\t")
              )
            }
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))}
          spids: [108]
        )
      ]
      spids: [108]
    )
    (FuncDef
      name: prepare
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:worker) op:Equal spids:[127])]
              spids: [125]
            )
            (C {(default_prepare)})
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (ForEach
              iter_name: worker
              iter_words: [
                {(proxy) (Lit_Other ":") (2)}
                {(normal) (Lit_Other ":") (3)}
                {(controller) (Lit_Other ":") (4)}
                {(fuzzy) (Lit_Other ":") (5)}
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(sed)}
                        {(-e)}
                        {
                          (DQ ("s/@name@/") 
                            (BracedVarSub
                              token: <VSub_Name worker>
                              suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(":*")})
                              spids: [173 177]
                            ) (/g)
                          )
                        }
                        {(-e)}
                        {
                          (DQ ("s/@port@/") 
                            (BracedVarSub
                              token: <VSub_Name worker>
                              suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*:")})
                              spids: [185 189]
                            ) (/g)
                          )
                        }
                        {(DQ ($ VSub_Name "$srcdir")) (/worker.conf.in)}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: 
                            {(conf/worker-) 
                              (BracedVarSub
                                token: <VSub_Name worker>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(":*")})
                                spids: [203 207]
                              ) (.conf)
                            }
                          spids: [200]
                        )
                      ]
                    )
                  ]
                  spids: [164 211]
                )
              spids: [146 162]
            )
            (C {(sed)} {(-ri)} {(-e)} {(SQ <"s/worker /&\"rspamd_proxy\" /">)} {(conf/worker-proxy.conf)})
            (AndOr
              children: [
                (C {(sed)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(-n)} {(-m1)} {(SQ <"worker {">)} {(conf/rspamd.conf)})
                                  (C {(cut)} {(-d) (Lit_Other ":")} {(-f1)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [232 251]
                      ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (d)
                    )
                  } {(-i)} {(conf/rspamd.conf)}
                )
                (SimpleCommand
                  words: [{(echo)} {(SQ <".include(glob=true) \"$CONFDIR/worker-*.conf\"">)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(conf/rspamd.conf)}
                      spids: [273]
                    )
                  ]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(sed)} {(-ri)} {(-e)} {(SQ <"s~DBDIR(/rspamd.sock)~RUNDIR\\1~">)} {(-e)} 
              {(SQ <"s~rspamd_dynamic~dynamic~">)} {(conf/options.inc)}
            )
          ]
          spids: [122]
        )
      spids: [118 121]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (C {(cmake)} {(CMakeLists.txt)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/usr)} 
              {(-DCONFDIR) (Lit_Other "=") (/etc/) ($ VSub_Name "$pkgname")} {(-DRUNDIR) (Lit_Other "=") (/run/) ($ VSub_Name "$pkgname")} 
              {(-DRSPAMD_USER) (Lit_Other "=") ($ VSub_Name "$pkgusers")} {(-DRSPAMD_GROUP) (Lit_Other "=") ($ VSub_Name "$pkggroups")} {(-DENABLE_DB) (Lit_Other "=") (ON)} 
              {(-DENABLE_SQLITE) (Lit_Other "=") (ON)} {(-DENABLE_HIREDIS) (Lit_Other "=") (ON)} {(-DENABLE_REDIRECTOR) (Lit_Other "=") (ON)} 
              {(-DENABLE_URL_INCLUDE) (Lit_Other "=") (ON)} {(-DINSTALL_EXAMPLES) (Lit_Other "=") (ON)}
            )
            (C {(make)})
          ]
          spids: [309]
        )
      spids: [305 308]
    )
    (FuncDef
      name: package
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name "$builddir"))})
            (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)})
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/local.d)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/override.d)}
            )
            (C {(install)} {(-Dm644)} 
              {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (.logrotated)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/logrotate.d/) ($ VSub_Name "$pkgname")}
            )
            (C {(install)} {(-Dm755)} 
              {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (.initd)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/init.d/) ($ VSub_Name "$pkgname")}
            )
            (C {(install)} {(-Dm644)} 
              {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (.confd)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/conf.d/) ($ VSub_Name "$pkgname")}
            )
            (C {(install)} {(-dm750)} {(-o)} {($ VSub_Name "$pkgname")} {(-g)} {($ VSub_Name "$pkgname")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/var/lib/) ($ VSub_Name "$pkgname") (/dynamic)}
            )
            (C {(install)} {(-dm750)} {(-g)} {($ VSub_Name "$pkgname")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/var/log/) ($ VSub_Name "$pkgname")}
            )
            (C {(chown)} {($ VSub_Name "$pkgname") (Lit_Other ":") ($ VSub_Name "$pkgname")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/var/lib/) ($ VSub_Name "$pkgname")}
            )
            (C {(mkdir)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/sbin)})
            (C {(find)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)} {(-type)} {(l)} {(-delete)})
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/rspamd-) ($ VSub_Name "$pkgver")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/sbin/rspamd)}
            )
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/rspamadm-) ($ VSub_Name "$pkgver")} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/rspamadm)}
            )
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/examples)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/doc)}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/www/README.md)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/www/plugins.txt)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/doc/) ($ VSub_Name "$pkgname")}
            )
          ]
          spids: [401]
        )
      spids: [397 400]
    )
    (FuncDef
      name: client
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (console client)"))}
                  spids: [664]
                )
              ]
              spids: [664]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)})
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/rspamc-) ($ VSub_Name "$pkgver")} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/rspamc)}
            )
          ]
          spids: [661]
        )
      spids: [657 660]
    )
    (FuncDef
      name: utils
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ (perl))} spids:[706])]
              spids: [706]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (utilities)"))}
                  spids: [712]
                )
              ]
              spids: [712]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)})
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) (${ VSub_Name pkgname) (_stats)} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/) (${ VSub_Name pkgname) (-stats)}
            )
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) (${ VSub_Name pkgname) (-redirector)} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}
            )
          ]
          spids: [703]
        )
      spids: [699 702]
    )
    (FuncDef
      name: fuzzy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname"))}
                  spids: [778]
                )
              ]
              spids: [778]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (local fuzzy storage)"))}
                  spids: [784]
                )
              ]
              spids: [784]
            )
            (C {(mkdir)} {(-p)} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/modules.d)}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/worker-fuzzy.) 
                (Lit_Other "*")
              } {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname")}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/modules.d/fuzzy_) 
                (Lit_Other "*")
              } {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/modules.d)}
            )
          ]
          spids: [775]
        )
      spids: [771 774]
    )
    (FuncDef
      name: controller
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[851])]
              spids: [851]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname"))}
                  spids: [857]
                )
              ]
              spids: [857]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (controller web interface)"))}
                  spids: [863]
                )
              ]
              spids: [863]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/) ($ VSub_Name "$pkgname")} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname")}
            )
            (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/) ($ VSub_Name "$pkgname") (/www)} 
              {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/) ($ VSub_Name "$pkgname")}
            )
            (C {(mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/worker-controller.) 
                (Lit_Other "*")
              } {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname")}
            )
          ]
          spids: [848]
        )
      spids: [844 847]
    )
    (FuncDef
      name: proxy
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:depends)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgname") (" rmilter"))}
                  spids: [935]
                )
              ]
              spids: [935]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (milter support)"))}
                  spids: [942]
                )
              ]
              spids: [942]
            )
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname")})
            (C {(mv)} 
              {(DQ ($ VSub_Name "$pkgdir")) (/etc/) ($ VSub_Name "$pkgname") (/worker-proxy.) 
                (Lit_Other "*")
              } {(DQ ($ VSub_Name "$subpkgdir")) (/etc/) ($ VSub_Name "$pkgname")}
            )
          ]
          spids: [932]
        )
      spids: [928 931]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"19c22d8f1085e8b48379787205d85053fb0f2c1ed7c3b4f757980929517dc344b5a4999963b0eeb9cd1c68412d0dc59c1eaa403125e42dbab257b24ed0627756  rspamd-1.6.4.tar.gz\n"
                ) 
                (
"2efe28575c40d1fba84b189bb872860e744400db80dce2f6330be6c6287fb3f46e6511284729b957488bf40bcb9b0952e26df9934f5f138334bd2766075c45cb  rspamd.logrotated\n"
                ) 
                (
"df37726d03e676b16d707854d95bafc9162da65c27bb150edbfc0cb00f1842188a1f2a8f1b82be5ae2a253b4f4db4d93dfe804a89feb988b5af858eb3f3458be  rspamd.initd\n"
                ) 
                (
"e417dd825d1b4d03d115db037b2fdf2f48a35420ee7a9010d97167b6c31e88d6c0a15dd33b21d7d76856db0fdc5097c922fcdf1d8164d1e92ae377f7c5303947  rspamd.confd\n"
                ) 
                (
"ae4b7e77a29bed5461088e5e9bd20941a578e899300b079b05900e355b5de1ba077fb33ae5533587f0748647bd2c7ee70aa53dd981899612eafac2203ae95883  cmakelists.patch\n"
                ) 
                (
"2169a8c4b4af6df9f3bbf4addeac564c9485a9d6a30fd15cf167093488362791c003a0d03360049c43d827e7fa767c1ad3522de6699b0247b75aa049c0b51214  worker.conf.in"
                )
              )
            }
          spids: [981]
        )
      ]
      spids: [981]
    )
  ]
)