(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(.)} 
      {
        (word_part.CommandSub
          left_token: <Left_DollarParen '$('>
          command_list: (command.CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})])
        ) (/atexit.sh)
      }
    )
    (C {(.)} 
      {
        (word_part.CommandSub
          left_token: <Left_DollarParen '$('>
          command_list: (command.CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})])
        ) (/colors.sh)
      }
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(${ VSub_Pound '#')} {(-eq)} {(2)})
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (C {(echo)} 
                  {
                    (DQ ('Usage: ') 
                      (word_part.CommandSub
                        left_token: <Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [(C {(basename)} {(${ VSub_Number 0)})]
                          )
                      ) (' [version] [candidate]')
                    )
                  }
                )
              terminator: <Op_Semi ';'>
            )
            (command.Sentence
              child: (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
      ]
    )
    (command.Assignment
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:VERSION) op:Equal rhs:{(${ VSub_Number 1)})]
    )
    (command.Assignment
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:CANDIDATE) op:Equal rhs:{(${ VSub_Number 2)})]
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:TAG)
          op: Equal
          rhs: {(DQ (${ VSub_Name VERSION) (-rc) (${ VSub_Name CANDIDATE))}
        )
      ]
    )
    (C {(echo)} 
      {
        (DQ (${ VSub_Name GREEN) ('Voting for mesos-') (${ VSub_Name VERSION) (' candidate ') 
          (${ VSub_Name CANDIDATE) (${ VSub_Name NORMAL)
        )
      }
    )
    (C {(read)} {(-p)} {(DQ ('Hit enter to continue ... '))})
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MESOS_GIT_URL)
          op: Equal
          rhs: {(DQ ('https://git-wip-us.apache.org/repos/asf/mesos.git'))}
        )
      ]
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:WORK_DIR)
          op: Equal
          rhs: 
            {
              (word_part.CommandSub
                left_token: <Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [(C {(mktemp)} {(-d)} {(/tmp/mesos-vote-XXXX)})]
                  )
              )
            }
        )
      ]
    )
    (C {(atexit)} {(DQ ('rm -rf ') (${ VSub_Name WORK_DIR))})
    (C {(pushd)} {(${ VSub_Name WORK_DIR)})
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Checking out ') (${ VSub_Name TAG) (${ VSub_Name NORMAL))})
    (C {(git)} {(clone)} {(--depth)} {(1)} {(--branch)} {(${ VSub_Name TAG)} {(${ VSub_Name MESOS_GIT_URL)})
    (C {(pushd)} {(mesos)})
    (C {(grep)} 
      {
        (DQ (Lit_Other '\\') ('[mesos') (Lit_Other '\\') ('], ') (Lit_Other '\\') ('[') 
          (${ VSub_Name VERSION) (Lit_Other '\\') (']')
        )
      } {(configure.ac)}
    )
    (C {(./bootstrap)})
    (C {(mkdir)} {(build)})
    (C {(pushd)} {(build)})
    (C {(../configure)} {(--disable-optimize)})
    (C {(pushd)} {(3rdparty)})
    (C {(make)} {(-j3)})
    (C {(popd)})
    (C {(make)} {(-j3)} {(maven-install)})
    (C {(mvn)} {(deploy)} {(-f)} {(src/java/mesos.pom)})
    (C {(echo)} 
      {
        (DQ (${ VSub_Name GREEN) ('Successfully deployed the jar to staging maven repository ...') 
          (${ VSub_Name NORMAL)
        )
      }
    )
    (command.Assignment
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:MAVEN_REPO) op:Equal rhs:{(DQ )})]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [
        (command.Sentence
          child: (C {(Lit_LBracket '[')} {(-z)} {(${ VSub_Name MAVEN_REPO)} {(Lit_RBracket ']')})
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (C {(read)} {(-p)} 
              {(DQ ('Please *close* the staging repository and provide its URL here: '))} {(MAVEN_REPO)}
            )
          ]
        )
    )
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Building the distribution ...') (${ VSub_Name NORMAL))})
    (C {(make)} {(-j3)} {(dist)})
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:TARBALL)
          op: Equal
          rhs: {(mesos-) (${ VSub_Name VERSION) (.tar.gz)}
        )
      ]
    )
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Signing the distribution ...') (${ VSub_Name NORMAL))})
    (C {(gpg)} {(--armor)} {(--output)} {(${ VSub_Name TARBALL) (.asc)} {(--detach-sig)} 
      {(${ VSub_Name TARBALL)}
    )
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Creating a MD5 checksum...') (${ VSub_Name NORMAL))})
    (command.Simple
      words: [{(gpg)} {(--print-md)} {(MD5)} {(${ VSub_Name TARBALL)}]
      redirects: [
        (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(${ VSub_Name TARBALL) (.md5)})
      ]
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SVN_DEV_REPO)
          op: Equal
          rhs: {(DQ ('https://dist.apache.org/repos/dist/dev/mesos'))}
        )
      ]
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SVN_DEV_LOCAL)
          op: Equal
          rhs: {(DQ (${ VSub_Name WORK_DIR) (/dev))}
        )
      ]
    )
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Checking out svn dev repo ...') (${ VSub_Name NORMAL))})
    (C {(svn)} {(co)} {(--depth) (Lit_Other '=') (empty)} {(${ VSub_Name SVN_DEV_REPO)} 
      {(${ VSub_Name SVN_DEV_LOCAL)}
    )
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Uploading the artifacts (the distribution,'))} 
      {(DQ ('signature, and MD5) ...') (${ VSub_Name NORMAL))}
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RELEASE_DIRECTORY)
          op: Equal
          rhs: {(DQ (${ VSub_Name SVN_DEV_LOCAL) (/) (${ VSub_Name TAG))}
        )
      ]
    )
    (C {(mkdir)} {(${ VSub_Name RELEASE_DIRECTORY)})
    (C {(mv)} {(${ VSub_Name TARBALL)} {(${ VSub_Name TARBALL) (.asc)} {(${ VSub_Name TARBALL) (.md5)} 
      {(${ VSub_Name RELEASE_DIRECTORY)}
    )
    (C {(popd)})
    (C {(popd)})
    (C {(pushd)} {(${ VSub_Name SVN_DEV_LOCAL)})
    (C {(svn)} {(add)} {(${ VSub_Name TAG)})
    (C {(svn)} {(commit)} {(-m)} {(DQ ('Adding mesos-') (${ VSub_Name TAG) (.))})
    (C {(popd)})
    (C {(popd)})
    (C {(echo)} 
      {
        (DQ (${ VSub_Name GREEN) ('Success! Now send the following VOTE email ...') 
          (${ VSub_Name NORMAL)
        )
      }
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MESSAGE)
          op: Equal
          rhs: 
            {
              (word_part.CommandSub
                left_token: <Left_DollarParen '$('>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Simple
                        words: [{(cat)}]
                        redirects: [
                          (redir.HereDoc
                            op: <Redir_DLess '<<'>
                            fd: 16777215
                            here_begin: {(__EOF__)}
                            here_end_span_id: 752
                            stdin_parts: [
                              ('To: dev@mesos.apache.org, user@mesos.apache.org\n')
                              ('Subject: [VOTE] Release Apache Mesos ')
                              (${ VSub_Name VERSION)
                              (' (rc')
                              (${ VSub_Name CANDIDATE)
                              (')\n')
                              ('\n')
                              ('Hi all,\n')
                              ('\n')
                              ('Please vote on releasing the following candidate as Apache Mesos ')
                              (${ VSub_Name VERSION)
                              ('.\n')
                              ('\n')
                              ('\n')
                              (${ VSub_Name VERSION)
                              (' includes the following:\n')
                              (
'--------------------------------------------------------------------------------\n'
                              )
                              ('*****Announce major features here*****\n')
                              ('*****Announce major bug fixes here*****\n')
                              ('\n')
                              ('The CHANGELOG for the release is available at:\n')
                              (
'https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb='
                              )
                              (${ VSub_Name TAG)
                              ('\n')
                              (
'--------------------------------------------------------------------------------\n'
                              )
                              ('\n')
                              ('The candidate for Mesos ')
                              (${ VSub_Name VERSION)
                              (' release is available at:\n')
                              (${ VSub_Name SVN_DEV_REPO)
                              (/)
                              (${ VSub_Name TAG)
                              (/)
                              (${ VSub_Name TARBALL)
                              ('\n')
                              ('\n')
                              ('The tag to be voted on is ')
                              (${ VSub_Name TAG)
                              (':\n')
                              ('https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=commit;h=')
                              (${ VSub_Name TAG)
                              ('\n')
                              ('\n')
                              ('The MD5 checksum of the tarball can be found at:\n')
                              (${ VSub_Name SVN_DEV_REPO)
                              (/)
                              (${ VSub_Name TAG)
                              (/)
                              (${ VSub_Name TARBALL)
                              ('.md5\n')
                              ('\n')
                              ('The signature of the tarball can be found at:\n')
                              (${ VSub_Name SVN_DEV_REPO)
                              (/)
                              (${ VSub_Name TAG)
                              (/)
                              (${ VSub_Name TARBALL)
                              ('.asc\n')
                              ('\n')
                              ('The PGP key used to sign the release is here:\n')
                              ('https://dist.apache.org/repos/dist/release/mesos/KEYS\n')
                              ('\n')
                              ('The JAR is up in Maven in a staging repository here:\n')
                              (${ VSub_Name MAVEN_REPO)
                              ('\n')
                              ('\n')
                              ('Please vote on releasing this package as Apache Mesos ')
                              (${ VSub_Name VERSION)
                              ('!\n')
                              ('\n')
                              ('The vote is open until ')
                              (word_part.CommandSub
                                left_token: <Left_Backtick '`'>
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(date)} {(-v) (Lit_Other '+') (3d)})]
                                  )
                              )
                              (' and passes if a majority of at least 3 +1 PMC votes are cast.\n')
                              ('\n')
                              ('[ ] +1 Release this package as Apache Mesos ')
                              (${ VSub_Name VERSION)
                              ('\n')
                              ('[ ] -1 Do not release this package because ...\n')
                              ('\n')
                              ('Thanks,\n')
                            ]
                          )
                        ]
                      )
                    ]
                  )
              )
            }
        )
      ]
    )
    (C {(echo)} {(DQ (${ VSub_Name MESSAGE))})
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)