(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SOURCE_DIR spids:[62])
          op: Equal
          rhs: 
            {
              (DQ 
                (word_part.CommandSubPart
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(cd)} 
                              {
                                (DQ 
                                  (word_part.CommandSubPart
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (C {(dirname)} 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Name BASH_SOURCE>
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: (arith_expr.ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                  spids: [74 79]
                                                )
                                              )
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [69 82]
                                  )
                                )
                              }
                            )
                            (C {(pwd)})
                          ]
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [64 89]
                )
              )
            }
          spids: [62]
        )
      ]
      spids: [62]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-ne)} {(2)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' <version> <rc-num>'))})
            (command.ControlFlow token:<ControlFlow_Exit exit>)
          ]
          spids: [16777215 108]
        )
      ]
      spids: [16777215 122]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:version spids:[125])
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [125]
        )
      ]
      spids: [125]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:rc spids:[128])
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [128]
        )
      ]
      spids: [128]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-d)} {(tmp/)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Cannot run: tmp/ exists'))})
            (command.ControlFlow token:<ControlFlow_Exit exit>)
          ]
          spids: [16777215 143]
        )
      ]
      spids: [16777215 155]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:tag spids:[158])
          op: Equal
          rhs: {(apache-arrow-) (${ VSub_Name version)}
          spids: [158]
        )
      ]
      spids: [158]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:tagrc spids:[164])
          op: Equal
          rhs: {(${ VSub_Name tag) (-rc) (${ VSub_Name rc)}
          spids: [164]
        )
      ]
      spids: [164]
    )
    (C {(echo)} {(DQ ('Preparing source for tag ') (${ VSub_Name tag))})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:release_hash spids:[184])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (command.SimpleCommand
                            words: [{(git)} {(rev-list)} {($ VSub_DollarName '$tag')}]
                            redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                          )
                          (C {(head)} {(-n)} {(1)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [185 204]
              )
            }
          spids: [184]
        )
      ]
      spids: [184]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$release_hash'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Cannot continue: unknown git tag: ') ($ VSub_DollarName '$tag'))})
            (command.ControlFlow token:<ControlFlow_Exit exit>)
          ]
          spids: [16777215 220]
        )
      ]
      spids: [16777215 233]
    )
    (C {(echo)} {(DQ ('Using commit ') ($ VSub_DollarName '$release_hash'))})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:tarball spids:[244])
          op: Equal
          rhs: {(${ VSub_Name tag) (.tar.gz)}
          spids: [244]
        )
      ]
      spids: [244]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:extract_dir spids:[251])
          op: Equal
          rhs: {(tmp-apache-arrow)}
          spids: [251]
        )
      ]
      spids: [251]
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name extract_dir)})
    (command.Pipeline
      children: [
        (C {(git)} {(archive)} {(${ VSub_Name release_hash)} {(--prefix)} {(${ VSub_Name extract_dir) (/)})
        (C {(tar)} {(xf)} {(-)})
      ]
      negated: F
    )
    (C {(mkdir)} {(-p)} {(${ VSub_Name extract_dir) (/cpp/build)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:cpp_install_dir spids:[307])
          op: Equal
          rhs: {(${ VSub_Name PWD) (/) (${ VSub_Name extract_dir) (/cpp/install)}
          spids: [307]
        )
      ]
      spids: [307]
    )
    (C {(cd)} {(${ VSub_Name extract_dir) (/cpp/build)})
    (C {(cmake)} {(..)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other '=') (${ VSub_Name cpp_install_dir)} 
      {(-DARROW_BUILD_TESTS) (Lit_Other '=') (no)}
    )
    (C {(make)} {(-j8)})
    (C {(make)} {(install)})
    (C {(cd)} {(-)})
    (C {(cd)} {(${ VSub_Name extract_dir) (/c_glib)})
    (C {(./autogen.sh)})
    (C {(./configure)} 
      {(Lit_VarLike 'PKG_CONFIG_PATH=') ($ VSub_DollarName '$cpp_install_dir') (/lib/pkgconfig)} {(--enable-gtk-doc)}
    )
    (command.SimpleCommand
      words: [{(make)} {(-j8)}]
      more_env: [
        (env_pair
          name: LD_LIBRARY_PATH
          val: 
            {($ VSub_DollarName '$cpp_install_dir') (/lib) (Lit_Other ':') 
              ($ VSub_DollarName '$LD_LIBRARY_PATH')
            }
          spids: [379]
        )
      ]
    )
    (C {(make)} {(dist)})
    (C {(tar)} {(xzf)} {(Lit_Other '*') (.tar.gz)})
    (C {(rm)} {(Lit_Other '*') (.tar.gz)})
    (C {(cd)} {(-)})
    (C {(rm)} {(-rf)} {(tmp-c_glib/)})
    (C {(mv)} {(${ VSub_Name extract_dir) (/c_glib/apache-arrow-glib-) (Lit_Other '*')} {(tmp-c_glib/)})
    (C {(rm)} {(-rf)} {(${ VSub_Name extract_dir)})
    (C {(rm)} {(-rf)} {(${ VSub_Name tag)})
    (command.Pipeline
      children: [
        (C {(git)} {(archive)} {($ VSub_DollarName '$release_hash')} {(--prefix)} {(${ VSub_Name tag) (/)})
        (C {(tar)} {(xf)} {(-)})
      ]
      negated: F
    )
    (C {(rm)} {(-rf)} {(${ VSub_Name tag) (/c_glib)})
    (C {(mv)} {(tmp-c_glib)} {(${ VSub_Name tag) (/c_glib)})
    (C {(tar)} {(czf)} {(${ VSub_Name tarball)} {(${ VSub_Name tag)})
    (C {(rm)} {(-rf)} {(${ VSub_Name tag)})
    (C {(${ VSub_Name SOURCE_DIR) (/run-rat.sh)} {(${ VSub_Name tarball)})
    (C {(gpg)} {(--armor)} {(--output)} {(${ VSub_Name tarball) (.asc)} {(--detach-sig)} 
      {(${ VSub_Name tarball)}
    )
    (command.SimpleCommand
      words: [{(gpg)} {(--print-md)} {(MD5)} {(${ VSub_Name tarball)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(${ VSub_Name tarball) (.md5)})
      ]
    )
    (command.SimpleCommand
      words: [{(sha1sum)} {($ VSub_DollarName '$tarball')}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name tarball) (.sha1)}
        )
      ]
    )
    (command.SimpleCommand
      words: [{(sha256sum)} {($ VSub_DollarName '$tarball')}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name tarball) (.sha256)}
        )
      ]
    )
    (command.SimpleCommand
      words: [{(sha512sum)} {($ VSub_DollarName '$tarball')}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name tarball) (.sha512)}
        )
      ]
    )
    (C {(svn)} {(co)} {(--depth) (Lit_Other '=') (empty)} 
      {(https) (Lit_Other ':') (//dist.apache.org/repos/dist/dev/arrow)} {(tmp)}
    )
    (C {(mkdir)} {(-p)} {(tmp/) (${ VSub_Name tagrc)})
    (C {(cp)} {(${ VSub_Name tarball) (Lit_Other '*')} {(tmp/) (${ VSub_Name tagrc)})
    (C {(svn)} {(add)} {(tmp/) (${ VSub_Name tagrc)})
    (C {(svn)} {(ci)} {(-m)} {(SQ <'Apache Arrow ${version} RC${rc}'>)} {(tmp/) (${ VSub_Name tagrc)})
    (C {(rm)} {(-rf)} {(tmp)})
    (C {(echo)} {(DQ ('Success! The release candidate is available here:'))})
    (C {(echo)} {(DQ ('  https://dist.apache.org/repos/dist/dev/arrow/') (${ VSub_Name tagrc))})
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ ('Commit SHA1: ') (${ VSub_Name release_hash))})
  ]
)