(command.CommandList
  children: [
    (C {(readonly)} {(Id.Lit_VarLike 'GCS_BUCKET=') (DQ ('gs://kythe-builds'))})
    (command.ShFunction
      name: usage
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('usage: ') 
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:62)
                      command_list: 
                        (command.CommandList
                          children: [(C {(basename)} {(DQ ($ Id.VSub_Number '$0'))})]
                        )
                    )
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:71)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_Pound '$#')}
                      right: {(0)}
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:88)
            )
          ]
          action: [
            (C {(usage)})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:96)
              arg_word: {(1)}
            )
          ]
          spids: [77 90]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REPO)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:105)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(readlink)} {(-e)} 
                          {
                            (DQ 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:111)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(dirname)} {(DQ ($ Id.VSub_Number '$0'))})]
                                  )
                              ) (/..)
                            )
                          }
                        )
                      ]
                    )
                )
              )
            }
          spids: [103]
        )
      ]
    )
    (C {(echo)} {(DQ ('Repository Root: ') ($ Id.VSub_DollarName '$REPO'))})
    (C {(.)} {(tools/modules/versions.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {(DQ (llvm-) (${ Id.VSub_Name FULL_SHA))}
          spids: [135]
        )
      ]
    )
    (C {(echo)} {(DQ ('LLVM Version: ') ($ Id.VSub_DollarName '$FULL_SHA'))})
    (C {(cd)} {(DQ ($ Id.VSub_DollarName '$REPO') (/third_party/llvm))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMP)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:161)
                  command_list: (command.CommandList children:[(C {(mktemp)} {(-d)})])
                )
              )
            }
          spids: [159]
        )
      ]
    )
    (C {(trap)} {(DQ ("rm -rf '") ($ Id.VSub_DollarName '$TMP') ("'"))} {(EXIT)} {(ERR)} {(INT)})
    (C {(tar)} {(czf)} {(DQ ($ Id.VSub_DollarName '$TMP') (/) ($ Id.VSub_DollarName '$NAME') (.tar.gz))} 
      {(llvm)}
    )
    (C {(gsutil)} {(cp)} 
      {(DQ ($ Id.VSub_DollarName '$TMP') (/) ($ Id.VSub_DollarName '$NAME') (.tar.gz))} {(DQ (${ Id.VSub_Name GCS_BUCKET) (/))}
    )
  ]
)