(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) (/))} ) ] )