(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_DBRACKET_LIKE "="] [SQ ]}) )]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (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_DBRACKET_LIKE "="] [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_DBRACKET_LIKE "="] [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_DBRACKET_LIKE "["]} {[DQ [VarSub tag_sha1]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub head_sha1]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS return]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub tag_sha1]]} {[LIT_DBRACKET_LIKE "="]} {[DQ ]} {[LIT_DBRACKET_LIKE "]"]} ) (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_DBRACKET_LIKE "="] [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]} ) )