(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<roundup>}
          spids: [3]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<0.0.6>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:pkgrel) op:assign_op.Equal rhs:{<1>} spids:[9])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'A a unit testing tool for running roundup(5) test plans which are\n'> 
                <'written in any POSIX shell.'>
              )
            }
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {<https> <Id.Lit_Colon ':'> <'//github.com/bmizerany/roundup/'>}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <MIT>)}
          spids: [28]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [33]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ <ncurses>)}
          spids: [35]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$pkgver') 
                <'.tar.gz::https://github.com/bmizerany/'> ($ Id.VSub_DollarName '$pkgname') <'/archive/v'> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'  '> 
                ($ Id.VSub_DollarName '$pkgname') <'-fix-busybox-shell-opts.patch\n'> <'  '> ($ Id.VSub_DollarName '$pkgname') 
                <'-avoid-bash-syntax-in-tests.patch\n'> <'  '>
              )
            }
          spids: [40]
        )
      ]
    )
    (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: [60]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (command.ForEach
              iter_name: i
              iter_words: [{($ Id.VSub_DollarName '$source')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'p='> 
                        (braced_var_sub
                          token: <Id.VSub_Name i>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VOp1_DPound '##'>
                              arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                            )
                        )
                      }
                    )
                    (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 '$p')})
                              terminator: <Id.Op_Semi _>
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<patch>} {<-p1>} {<-i>} 
                                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> 
                                    ($ Id.VSub_DollarName '$p')
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [118 120 144 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {($ Id.VSub_DollarName '$_builddir')})
            (C {<'/bin/sh'>} {<roundup.sh>} {<roundup-1-test.sh>})
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<install>} {<-Dm755>} {($ Id.VSub_DollarName '$_builddir') <'/roundup.sh'>} 
              {($ Id.VSub_DollarName '$pkgdir') <'/usr/bin/'> ($ Id.VSub_DollarName '$pkgname')}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'607023b4fe4e42fdc2f0cb14b4138b2e  roundup-0.0.6.tar.gz\n'> 
                <'a7d12efbf88919a1e2fc9b7ed143fd9c  roundup-fix-busybox-shell-opts.patch\n'> <'dddd5610d03f2c1237c295c564c291c4  roundup-avoid-bash-syntax-in-tests.patch'>
              )
            }
          spids: [197]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'20741043ed5be7cbc54b1e9a7c7de122a0dacced77052e90e4ff08e41736f01c  roundup-0.0.6.tar.gz\n'
                > 
                <
'31e00fc54fa806aaa1a3199dd13b596b36e8f57685c7524db125bf87a949845b  roundup-fix-busybox-shell-opts.patch\n'
                > 
                <
'e8829b4459a5e3d65949e564cf69e307e7b6fe11758d9becc9426a164bb4a812  roundup-avoid-bash-syntax-in-tests.patch'
                >
              )
            }
          spids: [204]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'a7a249d16467bd3835d555288ec6c3d84a36f2f7f2ae5da90e7624bc76a7741788499fd635d3001c086923914870392c23d765ca07ab7c97e58b9deec9989827  roundup-0.0.6.tar.gz\n'
                > 
                <
'13cf848227958e83fabf6cde96e1ac347199ad107d6a5daa07e23a976cc8613a0368447295afb310a817c8d6aeb52b96d12d58984a929114decc2c16098ddd7c  roundup-fix-busybox-shell-opts.patch\n'
                > 
                <
'526cca7805fb55de24df79482e3daa2253fc26db2db662229894b8ad56e79a8a45ad716e0c0241765455bda0a4c45344a9ea7c001860d3f8ca41f0c00e3954f9  roundup-avoid-bash-syntax-in-tests.patch'
                >
              )
            }
          spids: [211]
        )
      ]
    )
  ]
)