(CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(.)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})])
          left_token: <Left_CommandSub "$(">
          spids: [24 30]
        ) (/atexit.sh)
      }
    )
    (C {(.)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {(${ VSub_Number 0)})])
          left_token: <Left_CommandSub "$(">
          spids: [39 45]
        ) (/colors.sh)
      }
    )
    (AndOr
      children: [
        (C {(test)} {(${ VSub_Pound "#")} {(-eq)} {(2)})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (C {(echo)} 
                  {
                    (DQ ("Usage: ") 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(basename)} {(${ VSub_Number 0)})])
                        left_token: <Left_Backtick "`">
                        spids: [69 75]
                      ) (" [version] [candidate]")
                    )
                  }
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [63]
        )
      ]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:VERSION) op:Equal rhs:{(${ VSub_Number 1)} spids:[88])]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CANDIDATE) op:Equal rhs:{(${ VSub_Number 2)} spids:[93])]
      spids: [93]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TAG)
          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 ... "))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WORK_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (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)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SVN_DEV_REPO)
          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)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SVN_RELEASE_REPO)
          op: Equal
          rhs: {(DQ ("https://dist.apache.org/repos/dist/release/mesos"))}
          spids: [196]
        )
      ]
      spids: [196]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SVN_RELEASE_LOCAL)
          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))}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MESOS_GIT_URL)
          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)
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:input) op:Equal rhs:{(DQ )} spids:[414])]
      spids: [414]
    )
    (While
      cond: [
        (Sentence
          child: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} 
              {
                (BracedVarSub
                  token: <VSub_Name input>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(n)})
                  spids: [424 428]
                )
              } {(Lit_Other "=")} {(DQ (y))} {(Lit_Other "]")}
            )
          terminator: <Op_Semi ";">
        )
      ]
      body: 
        (DoGroup
          children: [
            (C {(read)} {(-p)} {(DQ ("Have you released the maven repository? (y/n): "))} {(input)})
            (AndOr
              children: [
                (C {(Lit_Other "[")} 
                  {
                    (BracedVarSub
                      token: <VSub_Name input>
                      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"))})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [439 477]
        )
    )
    (C {(echo)} 
      {
        (DQ (${ VSub_Name GREEN) ("Success! Now send the following RESULT VOTE email ...") 
          (${ VSub_Name NORMAL)
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MESSAGE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [{(cat)}]
                        redirects: [
                          (HereDoc
                            op_id: Redir_DLess
                            fd: -1
                            body: 
                              {
                                (DQ ("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")
                                )
                              }
                            do_expansion: True
                            here_end: __EOF__
                            was_filled: True
                            spids: [500]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [497 571]
              )
            }
          spids: [496]
        )
      ]
      spids: [496]
    )
    (C {(echo)} {(DQ (${ VSub_Name MESSAGE))})
    (C {(exit)} {(0)})
  ]
)