(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {<opennebula>}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<4.9.80>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'Virtual management infrastructure as a service (IaaS) toolkit for cloud computing'
                >
              )
            }
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://opennebula.org'>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <Apache>)}
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'ruby-json ruby-sequel ruby-nokogiri ruby-sqlite ruby-mysql2 ruby-nokogiri\n'> 
                <'\truby-rack14 ruby-sinatra ruby-thin ruby-crack ruby-thin ruby-net-ldap\n'> <'\truby-uuidtools ruby-curb ruby-amazon-ec2 ruby-io-console bash\n'> <'\tcurl wget'>
              )
            }
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends_dev)
          op: assign_op.Equal
          rhs: {(DQ <'xmlrpc-c-dev sqlite-dev openssl-dev libxml2-dev curl-dev'>)}
          spids: [42]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$depends_dev') <' scons ruby bash'>)}
          spids: [47]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:install)
          op: assign_op.Equal
          rhs: {(DQ <opennebula.pre-install>)}
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgusers)
          op: assign_op.Equal
          rhs: {<oneadmin>}
          spids: [58]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkggroups)
          op: assign_op.Equal
          rhs: {<oneadmin>}
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$pkgname') 
                <'-doc '> ($ Id.VSub_DollarName '$pkgname') <'-node-kvm:node_kvm'>
              )
            }
          spids: [64]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'http://downloads.opennebula.org/packages/opennebula-'> 
                ($ Id.VSub_DollarName '$pkgver') <'/opennebula-'> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\topennebula.initd\n'> 
                <'\topennebula.confd\n'> <'\tgetopt.patch\n'> <'\tssh.config\n'> <'\tone_auth'>
              )
            }
          spids: [74]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_builddir)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/opennebula-'> ($ Id.VSub_DollarName '$pkgver')}
          spids: [89]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<i>})
            (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: [
                    (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: <Id.Op_Semi _>
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<patch>} {<-p1>} {<-i>} 
                                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> 
                                    ($ Id.VSub_DollarName '$i')
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [135 137 161 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<scons>} 
                  {<-j> 
                    (braced_var_sub
                      token: <Id.VSub_Name JOBS>
                      suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<2>})
                    )
                  }
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<'./install.sh'>}
                    {<-u>}
                    {($ Id.VSub_DollarName '$pkgusers')}
                    {<-g>}
                    {($ Id.VSub_DollarName '$pkggroups')}
                  ]
                  more_env: [
                    (env_pair
                      name: DESTDIR
                      val: {(DQ ($ Id.VSub_DollarName '$pkgdir'))}
                      spids: [218]
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m755>} {<-D>} 
                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') 
                    <.initd>
                  } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/init.d/'> ($ Id.VSub_DollarName '$pkgname')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m644>} {<-D>} 
                  {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$pkgname') 
                    <.confd>
                  } {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/etc/conf.d/'> ($ Id.VSub_DollarName '$pkgname')}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<-d>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/one/.ssh'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/one/.one'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m600>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<-D>} {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/ssh.config'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/one/.ssh/config'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-m600>} {<-o>} {($ Id.VSub_DollarName '$pkgusers')} {<-g>} 
                  {($ Id.VSub_DollarName '$pkggroups')} {<-D>} {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/one_auth'>} 
                  {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/var/lib/one/.one/one_auth'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<echo>}
                    {<-e>}
                    {(DQ <Id.Lit_BadBackslash '\\'> <'nEMULATOR = /usr/bin/qemu-system-x86_64'>)}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_DGreat '>>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: 
                        {(DQ ($ Id.VSub_DollarName '$pkgdir')) 
                          <'/etc/one/vmm_exec/vmm_exec_kvm.conf'>
                        }
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: node_kvm
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pkgdesc)
                  op: assign_op.Equal
                  rhs: {(DQ <'KVM node for OpenNebula'>)}
                  spids: [439]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <noarch>)}
                  spids: [445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install)
                  op: assign_op.Equal
                  rhs: {(DQ <opennebula-node-kvm.pre-install>)}
                  spids: [451]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:depends)
                  op: assign_op.Equal
                  rhs: {(DQ <'ruby openssh qemu-x86_64 libvirt-qemu procps bash'>)}
                  spids: [457]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$subpkgdir'))})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'43ef6a658b5ae121ad4461178abdbd88  opennebula-4.9.80.tar.gz\n'> 
                <'44ecaf28b2f0293d55aa401e0ec49948  opennebula.initd\n'> <'0b9c5ef240d1cb13d35b21c081e756ad  opennebula.confd\n'> 
                <'8f1a346b4020b7c3e2853f42cc38d35b  getopt.patch\n'> <'37b82927bd6b0c1dd9cbde2a3728e719  ssh.config\n'> <'3ae86352df192e0aae9fdee58532610e  one_auth'>
              )
            }
          spids: [474]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'8e69dedd69001bce6d224661649bc3f5b1608bf87e69dd1ac5ff1e774745a3c9  opennebula-4.9.80.tar.gz\n'
                > <'20ea2103ccd37988c1426a7e39f37c9923465e1769cc3669dc47751876f3266a  opennebula.initd\n'> 
                <
'296d445dfaee90c114a5cd8ecb208c495a3a22dabde13ec9ece623368f5627a1  opennebula.confd\n'
                > <'072ad62b3ef18eb3c9d33b47acb7a867d076c3083ce561bdbffcf98bb852d663  getopt.patch\n'> 
                <'e934a2b5083a04126e5948a6abf1adfa8e557bb086010453824b44282dafdc8b  ssh.config\n'> <'4af1f964af87ed62f2b953e8b0269b2ad8dfbcba57b5eebddcb9e8f0cc4379da  one_auth'>
              )
            }
          spids: [484]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'54aff34770a29262a4e3ef886957044489f4d4b1905e847522adff6ad1012df21e9c2caa46bc060fbbbb9d1ce23cb41768f28ca90af5c4e5844b054c0d0d7349  opennebula-4.9.80.tar.gz\n'
                > 
                <
'2b87e93bce79325ecd57be053e08cc626bdec2bfd9048635452957efc88e5104cbbf74d3c2757e3e42738276b7bd37db2c9845e85570b7ff5f27117dad1d06e2  opennebula.initd\n'
                > 
                <
'0b5c98642a74a804e36729f0a0abb5434a55ecaa5a9c29620f8940ba69b141f47fa1693a63bc22298e735bba61d3f0b15c82278b5d8071eeb19f02398332f6ae  opennebula.confd\n'
                > 
                <
'7f39da47a89011bd368217bc7cb33a1647b49d43960bf47f22b742dfa109d04e9b18ad0827d5d3b4c05bd6b31d723322b9c899520fbb2db5b4217a38bab9eefe  getopt.patch\n'
                > 
                <
'9da0adff52401e5bd50b25a0ec240e781257330f9084c55c6ca741c9179c29681ee6855bc3607d05949124559828f6fdd029b3ea01b881f472292c96489c64cf  ssh.config\n'
                > 
                <
'8aaab56ae8c8bf7d1c06a47f4f3339c9e62486270b9ab00751dd21fabee19824f05b20b3d979741886539570e761fd3227acd5ef55a04a9273f0b706f93c813f  one_auth'
                >
              )
            }
          spids: [494]
        )
      ]
    )
  ]
)