(command.CommandList children: [ (C {(set)} {(-e)}) (C {(.)} { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})]) left_token: <Left_CommandSub '$('> spids: [24 30] ) (/atexit.sh) } ) (C {(.)} { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})]) left_token: <Left_CommandSub '$('> spids: [39 45] ) (/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.CommandSubPart command_list: (command.CommandList children: [(C {(basename)} {(${ VSub_Number 0)})] ) left_token: <Left_Backtick '`'> spids: [69 75] ) (' [version] [candidate]') ) } ) terminator: <Op_Semi ';'> ) (command.Sentence child: (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [63] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:VERSION spids:[88]) op: Equal rhs: {(${ VSub_Number 1)} spids: [88] ) ] spids: [88] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CANDIDATE spids:[93]) op: Equal rhs: {(${ VSub_Number 2)} spids: [93] ) ] spids: [93] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:TAG spids:[98]) op: Equal rhs: {(DQ (${ VSub_Name VERSION) (-rc) (${ VSub_Name CANDIDATE))} spids: [98] ) ] spids: [98] ) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Releasing mesos-') (${ VSub_Name TAG) (' as mesos-') (${ VSub_Name VERSION) (${ VSub_Name NORMAL) ) } ) (C {(read)} {(-p)} {(DQ ('Hit enter to continue ... '))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:WORK_DIR spids:[139]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(mktemp)} {(-d)} {(/tmp/mesos-release-XXXX)})] ) left_token: <Left_Backtick '`'> spids: [140 146] ) } spids: [139] ) ] spids: [139] ) (C {(atexit)} {(DQ ('rm -rf ') (${ VSub_Name WORK_DIR))}) (C {(pushd)} {(${ VSub_Name WORK_DIR)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SVN_DEV_REPO spids:[165]) op: Equal rhs: {(DQ ('https://dist.apache.org/repos/dist/dev/mesos'))} spids: [165] ) ] spids: [165] ) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Downloading the artifacts from the dev repo ...') (${ VSub_Name NORMAL) ) } ) (C {(svn)} {(export)} {(${ VSub_Name SVN_DEV_REPO) (/) (${ VSub_Name TAG)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SVN_RELEASE_REPO spids:[196]) op: Equal rhs: {(DQ ('https://dist.apache.org/repos/dist/release/mesos'))} spids: [196] ) ] spids: [196] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SVN_RELEASE_LOCAL spids:[201]) op: Equal rhs: {(DQ (${ VSub_Name WORK_DIR) (/release))} spids: [201] ) ] spids: [201] ) (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Checking out svn release repo ...') (${ VSub_Name NORMAL))}) (C {(svn)} {(co)} {(--depth) (Lit_Other '=') (empty)} {(${ VSub_Name SVN_RELEASE_REPO)} {(${ VSub_Name SVN_RELEASE_LOCAL)} ) (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Uploading the artifacts (the distribution,'))} {(DQ ('signature, and MD5) to the release repo ') (${ VSub_Name NORMAL))} ) (C {(mv)} {(${ VSub_Name TAG)} {(${ VSub_Name SVN_RELEASE_LOCAL) (/) (${ VSub_Name VERSION)}) (C {(pushd)} {(${ VSub_Name SVN_RELEASE_LOCAL)}) (C {(svn)} {(add)} {(${ VSub_Name VERSION)}) (C {(svn)} {(commit)} {(-m)} {(DQ ('Adding mesos-') (${ VSub_Name VERSION) (.))}) (C {(popd)}) (C {(popd)}) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Tagging ') (${ VSub_Name TAG) (' as ') (${ VSub_Name VERSION) (' ') (${ VSub_Name NORMAL) ) } ) (C {(git)} {(tag)} {(${ VSub_Name VERSION)} {(${ VSub_Name TAG)}) (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Pushing the git tag to the repository...') (${ VSub_Name NORMAL))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:MESOS_GIT_URL spids:[369]) op: Equal rhs: {(DQ ('https://git-wip-us.apache.org/repos/asf/mesos.git'))} spids: [369] ) ] spids: [369] ) (C {(git)} {(push)} {(${ VSub_Name MESOS_GIT_URL)} {(${ VSub_Name VERSION)}) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Successfully published artifacts to svn release repo ...') (${ VSub_Name NORMAL) ) } ) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Please *release* the staging maven repository that contains the mesos jar ...') (${ VSub_Name NORMAL) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:input spids:[414]) op: Equal rhs: {(DQ )} spids: [414] ) ] spids: [414] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} { (word_part.BracedVarSub token: <VSub_Name input> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(n)}) spids: [424 428] ) } {(Lit_Other '=')} {(DQ (y))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (C {(read)} {(-p)} {(DQ ('Have you released the maven repository? (y/n): '))} {(input)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} { (word_part.BracedVarSub token: <VSub_Name input> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(n)}) spids: [455 459] ) } {(Lit_Other '=')} {(DQ (y))} {(Lit_Other ']')} ) (C {(echo)} {(DQ ('Please release the staging maven repository before continuing'))}) ] ) ] spids: [439 477] ) ) (C {(echo)} { (DQ (${ VSub_Name GREEN) ('Success! Now send the following RESULT VOTE email ...') (${ VSub_Name NORMAL) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:MESSAGE spids:[496]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(__EOF__)} here_end_span_id: 572 stdin_parts: [ ('To: dev@mesos.apache.org, user@mesos.apache.org\n') ('Subject: [RESULT][VOTE] Release Apache Mesos ') (${ VSub_Name VERSION) (' (rc') (${ VSub_Name CANDIDATE) (')\n') ('\n') ('Hi all,\n') ('\n') ('The vote for Mesos ') (${ VSub_Name VERSION) (' (rc') (${ VSub_Name CANDIDATE) (') has passed with the\n') ('following votes.\n') ('\n') ('+1 (Binding)\n') ('------------------------------\n') ('***\n') ('***\n') ('***\n') ('\n') ('+1 (Non-binding)\n') ('------------------------------\n') ('***\n') ('***\n') ('***\n') ('\n') ('There were no 0 or -1 votes.\n') ('\n') ('Please find the release at:\n') (${ VSub_Name SVN_RELEASE_REPO) (/) (${ VSub_Name VERSION) ('\n') ('\n') ('It is recommended to use a mirror to download the release:\n') ('http://www.apache.org/dyn/closer.cgi\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 VERSION) ('\n') ('\n') ('The mesos-') (${ VSub_Name VERSION) ('.jar has been released to:\n') ('https://repository.apache.org\n') ('\n') ( 'The website (http://mesos.apache.org) will be updated shortly to reflect this release.\n' ) ('\n') ('Thanks,\n') ] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [497 573] ) } spids: [496] ) ] spids: [496] ) (C {(echo)} {(DQ (${ VSub_Name MESSAGE))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )