(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_luaversions)
          op: assign_op.Equal
          rhs: {(DQ ('5.1 5.2'))}
          spids: [7]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {(lua-subprocess)}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {(0.0.20141229)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {(2)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'A Lua module written in C that allows you to create child processes and communicate with them'
                )
              )
            }
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ ('https://github.com/tdtrask/lua-subprocess'))}
          spids: [26]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ (all))}
          spids: [31]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ (AS-IS))}
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [41]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [45]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends_dev)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [49]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$depends_dev') (' asciidoc'))}
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [59]
        )
      ]
    )
    (command.ForEach
      iter_name: _i
      iter_words: [{($ Id.VSub_DollarName '$_luaversions')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:makedepends)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$makedepends') (' lua') ($ Id.VSub_DollarName '$_i') 
                        (-dev)
                      )
                    }
                  spids: [75]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:subpackages)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$subpackages') (' lua') ($ Id.VSub_DollarName '$_i') 
                        ('-subprocess:split_') 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:_i span_id:91)
                          suffix_op: 
                            (suffix_op.PatSub
                              pat: {(.)}
                              replace: {(_)}
                              replace_mode: Id.Undefined_Tok
                            )
                        )
                      )
                    }
                  spids: [84]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('http://dev.alpinelinux.org/archive/') ($ Id.VSub_DollarName '$pkgname') (/) 
                ($ Id.VSub_DollarName '$pkgname') (-) ($ Id.VSub_DollarName '$pkgver') ('.tar.gz\n') ('\tmakefile.patch')
              )
            }
          spids: [101]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_giturl)
          op: assign_op.Equal
          rhs: {(DQ ('git://github.com/tdtrask/lua-subprocess.git'))}
          spids: [114]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_upload)
          op: assign_op.Equal
          rhs: {(DQ ('dev.alpinelinux.org:/archive/') ($ Id.VSub_DollarName '$pkgname') (/))}
          spids: [119]
        )
      ]
    )
    (command.ShFunction
      name: snapshot
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike '_date=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:137)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(date)} 
                          {(Id.Lit_Other '+') (Id.Lit_Other '%') (Y) (Id.Lit_Other '%') (m) 
                            (Id.Lit_Other '%') (d)
                          }
                        )
                      ]
                    )
                )
              }
            )
            (C {(local)} {(Id.Lit_VarLike '_ver=') (0.0.) ($ Id.VSub_DollarName '$_date')})
            (C {(local)} 
              {(Id.Lit_VarLike '_pkg=') ($ Id.VSub_DollarName '$pkgname') (-) 
                ($ Id.VSub_DollarName '$_ver') (.tar.gz)
              }
            )
            (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$srcdir'))})
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$srcdir'))})
            (C {(msg)} {(DQ ('Creating snapshot: ') ($ Id.VSub_DollarName '$_pkg'))})
            (C {(rm)} {(-rf)} 
              {
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:_giturl span_id:195)
                  suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('*') (Id.Lit_Slash /)})
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(git)} {(clone)} {(--depth) (Id.Lit_Equals '=') (1)} {(--bare)} 
                  {($ Id.VSub_DollarName '$_giturl')}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:216)
                  arg_word: {(1)}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(git)} {(--git-dir)} 
                  {
                    (braced_var_sub
                      token: (Token id:Id.VSub_Name val:_giturl span_id:226)
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VOp1_DPound
                          arg_word: {('*') (Id.Lit_Slash /)}
                        )
                    )
                  } {(archive)} {(-o)} {($ Id.VSub_DollarName '$_pkg')} 
                  {(--prefix) (Id.Lit_Equals '=') ($ Id.VSub_DollarName '$pkgname') (-) 
                    ($ Id.VSub_DollarName '$_ver') (/)
                  } {(HEAD)}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:253)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(msg)} {(DQ ('Uploading to ') ($ Id.VSub_DollarName '$_upload'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(rsync)} {(-Lave)} {(ssh)} {($ Id.VSub_DollarName '$_pkg')} 
                  {($ Id.VSub_DollarName '$_upload')}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:278)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$startdir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(sed)} {(-i)} {(-e)} 
                  {(DQ ('s/^pkgver=.*/pkgver=') ($ Id.VSub_DollarName '$_ver') (/))} {(APKBUILD)}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:308)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(abuild)} {(checksum)})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_sdir)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$srcdir')) (/) ($ Id.VSub_DollarName '$pkgname') (-) 
              ($ Id.VSub_DollarName '$pkgver')
            }
          spids: [320]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(i)})
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$_sdir'))})
            (command.ForEach
              iter_name: i
              iter_words: [{($ Id.VSub_DollarName '$source')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$i')}
                      arms: [
                        (case_arm
                          pat_list: [{(Id.Lit_Star '*') (.patch)}]
                          action: [
                            (command.Sentence
                              child: (C {(msg)} {($ Id.VSub_DollarName '$i')})
                              terminator: (Token id:Id.Op_Semi val:';' span_id:375)
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(patch)} {(-p1)} {(-i)} 
                                  {(DQ ($ Id.VSub_DollarName '$srcdir')) (/) 
                                    ($ Id.VSub_DollarName '$i')
                                  }
                                )
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Return val:return span_id:391)
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [368 370 394 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: _i
              iter_words: [{($ Id.VSub_DollarName '$_luaversions')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {(cp)} {(-r)} {(DQ ($ Id.VSub_DollarName '$_sdir'))} 
                      {(DQ ($ Id.VSub_DollarName '$srcdir')) (/build-) ($ Id.VSub_DollarName '$_i')}
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (command.BraceGroup
          children: [
            (command.ForEach
              iter_name: _i
              iter_words: [{($ Id.VSub_DollarName '$_luaversions')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {(cd)} 
                      {(DQ ($ Id.VSub_DollarName '$srcdir')) (/build-) ($ Id.VSub_DollarName '$_i')}
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(make)} 
                          {(Id.Lit_VarLike 'lua_package=') (DQ (lua) ($ Id.VSub_DollarName '$_i'))}
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:473)
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (command.BraceGroup
          children: [
            (command.ForEach
              iter_name: _i
              iter_words: [{($ Id.VSub_DollarName '$_luaversions')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {(cd)} 
                      {(DQ ($ Id.VSub_DollarName '$srcdir')) (/build-) ($ Id.VSub_DollarName '$_i')}
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(make)} 
                          {(Id.Lit_VarLike 'lua_package=') (DQ (lua) ($ Id.VSub_DollarName '$_i'))} {(Id.Lit_VarLike 'DESTDIR=') (DQ ($ Id.VSub_DollarName '$pkgdir'))} {(install)}
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:528)
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: _split
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'd=')} {(Id.Lit_VarLike '_ver=') ($ Id.VSub_Number '$1')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ('A Lua ') ($ Id.VSub_DollarName '$_ver') 
                        (
' module written in C that allows you to create child processes and communicate with them'
                        )
                      )
                    }
                  spids: [553]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_if)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (lua) ($ Id.VSub_DollarName '$_ver') (' ') ($ Id.VSub_DollarName '$pkgname') 
                        ('=') ($ Id.VSub_DollarName '$pkgver') (-r) ($ Id.VSub_DollarName '$pkgrel')
                      )
                    }
                  spids: [561]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:replaces)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$pkgname'))}
                  spids: [574]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [580]
                )
              ]
            )
            (command.ForEach
              iter_name: d
              iter_words: [{(usr/lib/lua)} {(usr/share/lua)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-d)} 
                                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) (/) 
                                    ($ Id.VSub_DollarName '$d') (/) ($ Id.VSub_DollarName '$_ver')
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:612)
                            )
                          ]
                          action: [
                            (C {(mkdir)} {(-p)} 
                              {(DQ ($ Id.VSub_DollarName '$subpkgdir')) (/) 
                                ($ Id.VSub_DollarName '$d')
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {(mv)} 
                                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) (/) 
                                    ($ Id.VSub_DollarName '$d') (/) ($ Id.VSub_DollarName '$_ver')
                                  } {(DQ ($ Id.VSub_DollarName '$subpkgdir')) (/) ($ Id.VSub_DollarName '$d') (/)}
                                )
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Return val:return span_id:647)
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [597 614]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ForEach
      iter_name: _i
      iter_words: [{($ Id.VSub_DollarName '$_luaversions')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {(eval)} 
              {
                (DQ (split_) 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:_i span_id:677)
                    suffix_op: 
                      (suffix_op.PatSub
                        pat: {(.)}
                        replace: {(_)}
                        replace_mode: Id.Undefined_Tok
                      )
                  ) ('() { _split ') ($ Id.VSub_DollarName '$_i') ('; }')
                )
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('a2ab629c701eba6f3300405daf104f1d  lua-subprocess-0.0.20141229.tar.gz\n') 
                ('8e784d1a4c78ca60bdd61c635026ee72  makefile.patch')
              )
            }
          spids: [691]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'6d58417d9e2791408092ec2b232072c0461343954d3f72ee6943b0103ac6ce20  lua-subprocess-0.0.20141229.tar.gz\n'
                ) ('019f7eb263abe4015581eae90c55ce2265b24ca213239bc02f565a107f8622ab  makefile.patch')
              )
            }
          spids: [697]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'5d0648a883102172bc086a0054f76832d25ce760149f0e0ddac927a325815b1937e780efc5d553bb6b751ed7642d728ff37745be134dfdb42753bde3b338a1b9  lua-subprocess-0.0.20141229.tar.gz\n'
                ) 
                (
'af4e25d8d503e9cb8296a2b8d8b19577e64b412f56607bf38bc828a7c214904ecdf9619fc2541461bc4dda6c6fcd47cbb1051499bd2f132dad76092cf3ae5e9d  makefile.patch'
                )
              )
            }
          spids: [703]
        )
      ]
    )
  ]
)