(List (FunctionDef tt_sha1_for_tag [] (List (= scope= flags=0 words=[] bindings=[('oneline', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -1]} {[VarSub 2]} {[LIT_CHARS --format] [LIT_OTHER "="] [SQ ]}) )]})]) (If (Com {[LIT_OTHER "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS echo]} {[VarSub oneline]}) ) ) ) (FunctionDef tt_sha1_for_head [] (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS HEAD]} {[LIT_CHARS -n1]} {[LIT_CHARS --format] [LIT_OTHER "="] [SQ ]}) (Com {[LIT_CHARS cat]}) ) ) ) ) (FunctionDef tt_tag_head [] (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS -f]} {[VarSub 2]}) ) ) ) (FunctionDef tt_delete_tag [] (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS -d]} {[VarSub 2]}) ) ) ) (FunctionDef tt_tag_three_ago [] (List (= scope= flags=0 words=[] bindings=[('sh', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS oneline]} {[LIT_CHARS -n]} {[LIT_CHARS 3]}) (Com {[LIT_CHARS tail]} {[LIT_CHARS -1]}) (Com {[LIT_CHARS awk]} {[SQ ]}) ) )]})]) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS -f]} {[VarSub 2]} {[VarSub sh]}) ) ) ) ) (FunctionDef tt_list_commits [] (List (= scope= flags=0 words=[] bindings=[('tag_sha1', {[ComSub (Com {[LIT_CHARS tt_sha1_for_tag]} {[VarSub 1]} {[VarSub 2]})]})]) (= scope= flags=0 words=[] bindings=[('head_sha1', {[ComSub (Com {[LIT_CHARS tt_sha1_for_head]} {[VarSub 1]})]})]) (= scope= flags=0 words=[] bindings=[('display_name', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 3]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub tag_sha1]]} {[LIT_OTHER "="]} {[DQ [VarSub head_sha1]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub tag_sha1]]} {[LIT_OTHER "="]} {[DQ ]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@BUILD_STEP Recent commits in repo "][VarSub display_name][LIT_CHARS "@@@"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NOTE: git tag was not found so we have no baseline."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Here are some recent commits, but they may not be new for this build."]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -n]} {[LIT_CHARS 10]} {[LIT_CHARS --stat]}) (Com {[LIT_CHARS cat]}) ) ) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@BUILD_STEP New commits in repo "][VarSub display_name][LIT_CHARS "@@@"]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub 1]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -n]} {[LIT_CHARS 500]} {[VarSub 2] [LIT_CHARS ..HEAD]} {[LIT_CHARS --stat]}) (Com {[LIT_CHARS cat]}) ) ) ) ) ) ) ) (FunctionDef tt_clean_all [] (For project [{[VarSub @]}]) (Com {[LIT_CHARS tt_delete_tag]} {[VarSub CHROME_SRC] [LIT_CHARS /../] [VarSub project]} {[LIT_CHARS tree_truth]}) ) ) (FunctionDef tt_print_all [] (For project [{[VarSub @]}]) (List (= scope= flags=0 words=[] bindings=[('full_path', {[VarSub CHROME_SRC] [LIT_CHARS /../] [VarSub project]})]) (Com {[LIT_CHARS tt_list_commits]} {[VarSub full_path]} {[LIT_CHARS tree_truth]} {[VarSub project]}) (Com {[LIT_CHARS tt_tag_head]} {[VarSub full_path]} {[LIT_CHARS tree_truth]}) ) ) ) (FunctionDef tt_brief_summary [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@BUILD_STEP Brief summary of recent CLs in every branch@@@"]]}) (For project [{[VarSub @]}]) (List (Com {[LIT_CHARS echo]} {[VarSub project] [LIT_OTHER ":"]}) (= scope= flags=0 words=[] bindings=[('full_path', {[VarSub CHROME_SRC] [LIT_CHARS /../] [VarSub project]})]) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub full_path]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -n]} {[LIT_CHARS 10]} {[LIT_CHARS --format] [LIT_OTHER "="] [DQ [LIT_CHARS " %H %s %an, %ad"]]}) (Com {[LIT_CHARS cat]}) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "================================================================="]]}) ) ) ) ) (= scope= flags=0 words=[] bindings=[('CHROME_SRC', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('PROJECT_LIST', {[VarSub @]})]) (Com {[LIT_CHARS tt_brief_summary]} {[VarSub PROJECT_LIST]}) (Com {[LIT_CHARS tt_print_all]} {[VarSub PROJECT_LIST]}) )