(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)}) ] )