(CommandList
  children: [
    (C {(set)} {(-eu)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SCRIPT_DIR)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (AndOr
                          children: [
                            (C {(cd)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(dirname)} 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name BASH_SOURCE>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 0)})
                                                    )
                                                  spids: [66 71]
                                                )
                                              )
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub "$(">
                                    spids: [62 73]
                                  )
                                )
                              }
                            )
                            (C {(pwd)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [58 79]
                )
              )
            }
          spids: [56]
        )
      ]
      spids: [56]
    )
    (C {(source)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(dirname)} {(${ VSub_Name SCRIPT_DIR)})])
            left_token: <Left_CommandSub "$(">
            spids: [85 91]
          ) (/release/common.sh)
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:git_hash)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--short)} {(HEAD)})])
                left_token: <Left_CommandSub "$(">
                spids: [97 105]
              )
            }
          spids: [96]
        )
      ]
      spids: [96]
    )
    (C {(echo)} {(DQ ("RELEASE_GIT_HASH ") (${ VSub_Name git_hash))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name GIT_REPOSITORY_URL>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_ColonHyphen
                      arg_word: 
                        {("https:") (Lit_Slash /) (Lit_Slash /) (github.com) (Lit_Slash /) (bazelbuild) 
                          (Lit_Slash /) (bazel)
                        }
                    )
                  spids: [118 129]
                )
              )
            }
          spids: [116]
        )
      ]
      spids: [116]
    )
    (C {(echo)} {(DQ ("RELEASE_COMMIT_URL ") (${ VSub_Name url) (/commit/) (${ VSub_Name git_hash))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-n)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name BUILT_BY>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                        spids: [152 155]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("RELEASE_BUILT_BY ") (${ VSub_Name BUILT_BY))})]
          spids: [-1 161]
        )
      ]
      spids: [-1 173]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-n)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name BUILD_LOG>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                        spids: [182 185]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("RELEASE_BUILD_LOG ") (${ VSub_Name BUILD_LOG))})]
          spids: [-1 191]
        )
      ]
      spids: [-1 203]
    )
    (C {(echo)} 
      {
        (DQ ("RELEASE_COMMIT_MSG ") 
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Pipeline
                    children: [(C {(git_commit_msg)}) (C {(tr)} {(SQ <"\\n">)} {(SQ <"\\f">)})]
                    negated: False
                  )
                ]
              )
            left_token: <Left_CommandSub "$(">
            spids: [209 223]
          )
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:release_name)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(get_release_name)})])
                left_token: <Left_CommandSub "$(">
                spids: [227 229]
              )
            }
          spids: [226]
        )
      ]
      spids: [226]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:rc)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(get_release_candidate)})])
                left_token: <Left_CommandSub "$(">
                spids: [232 234]
              )
            }
          spids: [231]
        )
      ]
      spids: [231]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name release_name))} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name rc))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ ("RELEASE_NAME ") (${ VSub_Name release_name) (rc) (${ VSub_Name rc))}
                    )
                  ]
                  spids: [-1 269]
                )
              ]
              else_action: [(C {(echo)} {(DQ ("RELEASE_NAME ") (${ VSub_Name release_name))})]
              spids: [286 299]
            )
          ]
          spids: [-1 251]
        )
      ]
      spids: [-1 301]
    )
  ]
)