(command.CommandList children: [ (C {(Id.KW_Set set)} {(-e)}) (C {(.)} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(dirname)} {(${ Id.VSub_Number 0)})]) ) (/atexit.sh) } ) (C {(.)} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(dirname)} {(${ Id.VSub_Number 0)})]) ) (/colors.sh) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(${ Id.VSub_Pound '#')} {(-eq)} {(2)}) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ('Usage: ') (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [(C {(basename)} {(${ Id.VSub_Number 0)})] ) ) (' [version] [candidate]') ) } ) terminator: <Id.Op_Semi ';'> ) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Id.Op_Semi ';'> ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {(${ Id.VSub_Number 1)} spids: [90] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CANDIDATE) op: assign_op.Equal rhs: {(${ Id.VSub_Number 2)} spids: [95] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TAG) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name VERSION) (-rc) (${ Id.VSub_Name CANDIDATE))} spids: [100] ) ] ) (C {(echo)} { (DQ (${ Id.VSub_Name GREEN) ('Voting for mesos-') (${ Id.VSub_Name VERSION) (' candidate ') (${ Id.VSub_Name CANDIDATE) (${ Id.VSub_Name NORMAL) ) } ) (C {(read)} {(-p)} {(DQ ('Hit enter to continue ... '))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MESOS_GIT_URL) op: assign_op.Equal rhs: {(DQ ('https://git-wip-us.apache.org/repos/asf/mesos.git'))} spids: [141] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WORK_DIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [(C {(mktemp)} {(-d)} {(/tmp/mesos-vote-XXXX)})] ) ) } spids: [147] ) ] ) (C {(atexit)} {(DQ ('rm -rf ') (${ Id.VSub_Name WORK_DIR))}) (C {(pushd)} {(${ Id.VSub_Name WORK_DIR)}) (C {(echo)} {(DQ (${ Id.VSub_Name GREEN) ('Checking out ') (${ Id.VSub_Name TAG) (${ Id.VSub_Name NORMAL))} ) (C {(git)} {(clone)} {(--depth)} {(1)} {(--branch)} {(${ Id.VSub_Name TAG)} {(${ Id.VSub_Name MESOS_GIT_URL)} ) (C {(pushd)} {(mesos)}) (C {(grep)} { (DQ (Id.Lit_Other '\\') ('[mesos') (Id.Lit_Other '\\') ('], ') (Id.Lit_Other '\\') ('[') (${ Id.VSub_Name VERSION) (Id.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 (${ Id.VSub_Name GREEN) ('Successfully deployed the jar to staging maven repository ...') (${ Id.VSub_Name NORMAL) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAVEN_REPO) op: assign_op.Equal rhs: {(DQ )} spids: [309] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(${ Id.VSub_Name MAVEN_REPO)} {(Id.Lit_RBracket ']')}) terminator: <Id.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 (${ Id.VSub_Name GREEN) ('Building the distribution ...') (${ Id.VSub_Name NORMAL))} ) (C {(make)} {(-j3)} {(dist)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARBALL) op: assign_op.Equal rhs: {(mesos-) (${ Id.VSub_Name VERSION) (.tar.gz)} spids: [364] ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name GREEN) ('Signing the distribution ...') (${ Id.VSub_Name NORMAL))}) (C {(gpg)} {(--armor)} {(--output)} {(${ Id.VSub_Name TARBALL) (.asc)} {(--detach-sig)} {(${ Id.VSub_Name TARBALL)} ) (C {(echo)} {(DQ (${ Id.VSub_Name GREEN) ('Creating a MD5 checksum...') (${ Id.VSub_Name NORMAL))}) (command.Simple words: [{(gpg)} {(--print-md)} {(MD5)} {(${ Id.VSub_Name TARBALL)}] redirects: [ (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name TARBALL) (.md5)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_DEV_REPO) op: assign_op.Equal rhs: {(DQ ('https://dist.apache.org/repos/dist/dev/mesos'))} spids: [440] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_DEV_LOCAL) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name WORK_DIR) (/dev))} spids: [445] ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name GREEN) ('Checking out svn dev repo ...') (${ Id.VSub_Name NORMAL))} ) (C {(svn)} {(co)} {(--depth) (Id.Lit_Equals '=') (empty)} {(${ Id.VSub_Name SVN_DEV_REPO)} {(${ Id.VSub_Name SVN_DEV_LOCAL)} ) (C {(echo)} {(DQ (${ Id.VSub_Name GREEN) ('Uploading the artifacts (the distribution,'))} {(DQ ('signature, and MD5) ...') (${ Id.VSub_Name NORMAL))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RELEASE_DIRECTORY) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name SVN_DEV_LOCAL) (/) (${ Id.VSub_Name TAG))} spids: [509] ) ] ) (C {(mkdir)} {(${ Id.VSub_Name RELEASE_DIRECTORY)}) (C {(mv)} {(${ Id.VSub_Name TARBALL)} {(${ Id.VSub_Name TARBALL) (.asc)} {(${ Id.VSub_Name TARBALL) (.md5)} {(${ Id.VSub_Name RELEASE_DIRECTORY)} ) (C {(popd)}) (C {(popd)}) (C {(pushd)} {(${ Id.VSub_Name SVN_DEV_LOCAL)}) (C {(svn)} {(add)} {(${ Id.VSub_Name TAG)}) (C {(svn)} {(commit)} {(-m)} {(DQ ('Adding mesos-') (${ Id.VSub_Name TAG) (.))}) (C {(popd)}) (C {(popd)}) (C {(echo)} { (DQ (${ Id.VSub_Name GREEN) ('Success! Now send the following VOTE email ...') (${ Id.VSub_Name NORMAL) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MESSAGE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 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 ') (${ Id.VSub_Name VERSION) (' (rc') (${ Id.VSub_Name CANDIDATE) (')\n') ('\n') ('Hi all,\n') ('\n') ('Please vote on releasing the following candidate as Apache Mesos ') (${ Id.VSub_Name VERSION) ('.\n') ('\n') ('\n') (${ Id.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=' ) (${ Id.VSub_Name TAG) ('\n') ( '--------------------------------------------------------------------------------\n' ) ('\n') ('The candidate for Mesos ') (${ Id.VSub_Name VERSION) (' release is available at:\n') (${ Id.VSub_Name SVN_DEV_REPO) (/) (${ Id.VSub_Name TAG) (/) (${ Id.VSub_Name TARBALL) ('\n') ('\n') ('The tag to be voted on is ') (${ Id.VSub_Name TAG) (':\n') ('https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=commit;h=') (${ Id.VSub_Name TAG) ('\n') ('\n') ('The MD5 checksum of the tarball can be found at:\n') (${ Id.VSub_Name SVN_DEV_REPO) (/) (${ Id.VSub_Name TAG) (/) (${ Id.VSub_Name TARBALL) ('.md5\n') ('\n') ('The signature of the tarball can be found at:\n') (${ Id.VSub_Name SVN_DEV_REPO) (/) (${ Id.VSub_Name TAG) (/) (${ Id.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') (${ Id.VSub_Name MAVEN_REPO) ('\n') ('\n') ('Please vote on releasing this package as Apache Mesos ') (${ Id.VSub_Name VERSION) ('!\n') ('\n') ('The vote is open until ') (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [(C {(date)} {(-v) (Id.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 ') (${ Id.VSub_Name VERSION) ('\n') ('[ ] -1 Do not release this package because ...\n') ('\n') ('Thanks,\n') ] ) ] ) ] ) ) } spids: [616] ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name MESSAGE))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{(0)}) ] )