(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_railsver='> name:_railsver)
          op: assign_op.Equal
          rhs: {<4.2>}
          spids: [9]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgname='> name:pkgname)
          op: assign_op.Equal
          rhs: {<redmine>}
          spids: [12]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgver='> name:pkgver)
          op: assign_op.Equal
          rhs: {<3.2.1>}
          spids: [15]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgrel='> name:pkgrel)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [18]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgdesc='> name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'Project management web application written in Ruby'>)}
          spids: [21]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://redmine.org'>)}
          spids: [26]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
          op: assign_op.Equal
          rhs: {(DQ <noarch>)}
          spids: [31]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'license='> name:license)
          op: assign_op.Equal
          rhs: {(DQ <GPL2>)}
          spids: [36]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'depends='> name:depends)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'ruby\n'> <'\truby-actionpack-action_caching'> (${ Id.VSub_Name _railsver) <'\n'> 
                <'\truby-actionpack-xml_parser'> (${ Id.VSub_Name _railsver) <'\n'> <'\truby-bigdecimal\n'> <'\truby-coderay\n'> <'\truby-fastercsv\n'> 
                <'\truby-i18n\n'> <'\truby-jquery-rails'> (${ Id.VSub_Name _railsver) <'\n'> <'\truby-json\n'> <'\truby-mocha\n'> 
                <'\truby-net-ldap\n'> <'\truby-openid<2.4\n'> <'\truby-rack\n'> <'\truby-rack-openid\n'> <'\truby-rails'> 
                (${ Id.VSub_Name _railsver) <'\n'> <'\truby-rbpdf\n'> <'\truby-rdoc\n'> <'\truby-redcarpet\n'> <'\truby-request_store\n'> 
                <'\truby-rmagick\n'> <'\truby-protected_attributes'> (${ Id.VSub_Name _railsver) <'\n'> <'\truby-roadie-rails\n'> <'\n'> 
                <'\truby-io-console\n'> <'\t'>
              )
            }
          spids: [47]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'depends_dev='> name:depends_dev)
          op: assign_op.Equal
          rhs: {<ruby-io-console>}
          spids: [96]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makedepends='> name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName depends_dev))}
          spids: [99]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'install='> name:install)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName pkgname) <'.pre-install '> ($ Id.VSub_DollarName pkgname) 
                <.post-install>
              )
            }
          spids: [104]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'subpackages='> name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [112]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkgusers='> name:pkgusers)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName pkgname))}
          spids: [116]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkggroups='> name:pkggroups)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName pkgname) <' www-data'>)}
          spids: [121]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'source='> name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'http://www.redmine.org/releases/redmine-'> ($ Id.VSub_DollarName pkgver) 
                <'.tar.gz\n'> <'\tgemfile.patch\n'> <'\tdatabase.yml.patch\n'> <'\t'>
              )
            }
          spids: [127]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_webapps='> name:_webapps)
          op: assign_op.Equal
          rhs: {(DQ <'usr/share/webapps'>)}
          spids: [137]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_builddir='> name:_builddir)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName srcdir)) <'/redmine-'> ($ Id.VSub_DollarName pkgver)}
          spids: [143]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<i>})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName _builddir))})
            (command.ForEach
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName source)}])
              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: [189 191 215 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName _builddir))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<bundler>} {<check>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<bundler>} {<list>})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [244 253]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName _builddir))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mkdir>} {<-p>} 
                  {
                    (DQ ($ Id.VSub_DollarName pkgdir) <'/'> ($ Id.VSub_DollarName _webapps) <'/'> 
                      ($ Id.VSub_DollarName pkgname)
                    )
                  } {(DQ ($ Id.VSub_DollarName pkgdir)) <'/etc/redmine'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<install>} {<-o>} {<redmine>} {<-g>} {<www-data>} {<-m775>} {<-d>} 
                  {(DQ ($ Id.VSub_DollarName pkgdir)) <'/var/lib/redmine'>} {(DQ ($ Id.VSub_DollarName pkgdir)) <'/var/log/redmine'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.ForEach
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {<database.yml.example>}
                    {<configuration.yml.example>}
                    {<additional_environment.rb.example>}
                    {<routes.rb>}
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<mv>} {<'config/'> (${ Id.VSub_Name i)} 
                          {(DQ ($ Id.VSub_DollarName pkgdir)) <'/etc/redmine/'> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name i>
                              var_name: i
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VOp1_Percent '%'>
                                  arg_word: {<.example>}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<ln>} {<-s>} 
                          {<'/etc/redmine/'> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name i>
                              var_name: i
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VOp1_Percent '%'>
                                  arg_word: {<.example>}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          } 
                          {<'config/'> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name i>
                              var_name: i
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VOp1_Percent '%'>
                                  arg_word: {<.example>}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                  ]
                )
              redirects: []
            )
            (command.ForEach
              iter_names: [i]
              iterable: (for_iter.Words words:[{<db>} {<files>} {<tmp>} {<'public/plugin_assets'>}])
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<chown>} {<redmine> <Id.Lit_Colon ':'> <www-data>} 
                          {($ Id.VSub_DollarName i)}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<chmod>} {<775>} {($ Id.VSub_DollarName i)})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<mv>} {($ Id.VSub_DollarName i)} 
                          {(DQ ($ Id.VSub_DollarName pkgdir)) <'/var/lib/redmine/'>}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<ln>} {<-s>} 
                          {<'/var/lib/redmine/'> 
                            (braced_var_sub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Name i>
                              var_name: i
                              suffix_op: 
                                (suffix_op.Unary
                                  op: <Id.VOp1_Pound '#'>
                                  arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                )
                              right: <Id.Right_DollarBrace '}'>
                            )
                          } {($ Id.VSub_DollarName i)}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                    )
                  ]
                )
              redirects: []
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<chown>} {<redmine>} {<Gemfile.lock>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<ln>} {<-s>} {<'/var/lib/redmine/secret_token.rb'>} {<'config/initializers/'>})
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<rm>} {<-r>} {<log>})
                (C {<ln>} {<-s>} {<'/var/log/redmine'>} {<log>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<mv>} {<Id.Lit_Star '*'>} 
                  {
                    (DQ ($ Id.VSub_DollarName pkgdir) <'/'> ($ Id.VSub_DollarName _webapps) <'/'> 
                      ($ Id.VSub_DollarName pkgname)
                    )
                  }
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'md5sums='> name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'425aa0c56b66bf48c878798a9f7c6546  redmine-3.2.1.tar.gz\n'> 
                <'a80146b41b912f248140e616154073f6  gemfile.patch\n'> <'d834bef9b5f01484f1e0ee82676f4109  database.yml.patch'>
              )
            }
          spids: [597]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sha256sums='> name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'5e69ad50eef27b581e58ea0d72f2dcb19f38db3626e3bd6ed27b74d5a4da5bd6  redmine-3.2.1.tar.gz\n'
                > <'d9d94fcb696aed05b308114c0b053f878918e3d2dbd12e5ee0b46c041bd18bcd  gemfile.patch\n'> 
                <
'28b1ec099ae87c43d00d7e997edabaece01d6fc2e67b46c50735e9a1bb72f130  database.yml.patch'
                >
              )
            }
          spids: [604]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sha512sums='> name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'20bc63f82aa58a67c10733338e7aebae3348689531f1f0a6dbedb00301f128ef6a29bd6a33d3075b614e01b23f5311a9739b251fb911298e54d4df06df628bf3  redmine-3.2.1.tar.gz\n'
                > 
                <
'9f3be9039f9c576b56d77e3e3f477fe16fdd5d0f8b8b1bb3722cad1aff669f2ee65c308d27ec8c25300b4a3991b65fcf9d4d127abd0542477f1dd8f5af82d7ee  gemfile.patch\n'
                > 
                <
'1b5880979f050a71d726c844369cc5340a8d4aa0b59b2301e1d32dea28f70ca2a85e619c8b845c37de08772154eef13fa63716c1beaaa50d97b80fd65c297bf9  database.yml.patch'
                >
              )
            }
          spids: [611]
        )
      ]
      redirects: []
    )
  ]
)