(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) ('Tagging ') (${ VSub_Name TAG) (${ VSub_Name NORMAL))})
    (C {(read)} {(-p)} {(DQ ('Hit enter to continue ... '))})
    (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-tag-XXXX)})]
                  )
              )
            }
        )
      ]
    )
    (C {(atexit)} {(DQ ('rm -rf ') (${ VSub_Name WORK_DIR))})
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MESOS_GIT_LOCAL)
          op: Equal
          rhs: 
            {
              (word_part.CommandSub
                left_token: <Left_DollarParen '$('>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Sentence
                        child: 
                          (C {(cd)} 
                            {
                              (DQ 
                                (word_part.CommandSub
                                  left_token: <Left_DollarParen '$('>
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {(dirname)} {($ VSub_Number '$0')})]
                                    )
                                )
                              ) (/..)
                            }
                          )
                        terminator: <Op_Semi ';'>
                      )
                      (C {(pwd)})
                    ]
                  )
              )
            }
        )
      ]
    )
    (C {(pushd)} {(${ VSub_Name WORK_DIR)})
    (C {(git)} {(clone)} {(--shared)} {(${ VSub_Name MESOS_GIT_LOCAL)} {(--branch)} {(${ VSub_Name TAG)} 
      {(mesos)}
    )
    (C {(pushd)} {(mesos)})
    (C {(echo)} {(DQ ('Confirming that configure.ac contains ') (${ VSub_Name VERSION))})
    (C {(grep)} 
      {
        (DQ (Lit_Other '\\') ('[mesos') (Lit_Other '\\') ('], ') (Lit_Other '\\') ('[') 
          (${ VSub_Name VERSION) (Lit_Other '\\') (']')
        )
      } {(configure.ac)}
    )
    (C {(echo)} 
      {
        (DQ (${ VSub_Name GREEN) ('Updating configure.ac to include the release candidate.') 
          (${ VSub_Name NORMAL)
        )
      }
    )
    (C {(sed)} {(-i)} {(SQ )} 
      {
        (DQ (s/) (Lit_Other '\\') ('[mesos') (Lit_Other '\\') ('], ') (Lit_Other '\\') ('[.*') 
          (Lit_Other '\\') (']/[mesos], [') (${ VSub_Name TAG) (']/')
        )
      } {(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)
        )
      }
    )
    (C {(read)} {(-p)} 
      {(DQ ('Please *close* and *release* the staging repository and hit enter to continue ...'))}
    )
    (command.Assignment
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:input) op:Equal rhs:{(DQ )})]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [
        (command.Sentence
          child: 
            (C {(Lit_LBracket '[')} {(KW_Bang '!')} 
              {
                (word_part.BracedVarSub
                  token: <VSub_Name input>
                  suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(n)})
                )
              } {(Lit_Other '=')} {(DQ (y))} {(Lit_RBracket ']')}
            )
          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_LBracket '[')} 
                  {
                    (word_part.BracedVarSub
                      token: <VSub_Name input>
                      suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(n)})
                    )
                  } {(Lit_Other '=')} {(DQ (y))} {(Lit_RBracket ']')}
                )
                (C {(echo)} {(DQ ('Please release the staging maven repository before continuing'))})
              ]
            )
          ]
        )
    )
    (C {(popd)})
    (C {(echo)} 
      {(DQ (${ VSub_Name GREEN) ('Pushing the git tag to the repository...') (${ VSub_Name NORMAL))}
    )
    (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'))}
        )
      ]
    )
    (C {(git)} {(push)} {(${ VSub_Name MESOS_GIT_URL)} {(refs/tags/) (${ VSub_Name TAG)})
    (C {(popd)})
    (C {(popd)})
    (C {(echo)} {(DQ (${ VSub_Name GREEN) ('Success!') (${ VSub_Name NORMAL))})
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)