(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eu]}) (FunctionDef git_get_branch [] (Com {[LIT_CHARS git]} {[LIT_CHARS symbolic-ref]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD]}) ) (FunctionDef git_commit_msg [] (Com {[LIT_CHARS git]} {[LIT_CHARS show]} {[LIT_CHARS -s]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS format] [LIT_OTHER ":"] [LIT_OTHER "%"] [LIT_CHARS B]} {[DQ [VarSub @]]}) ) (FunctionDef get_release_candidate [] (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS notes]} {[LIT_CHARS --ref] [LIT_OTHER "="] [LIT_CHARS release-candidate]} {[LIT_CHARS show]} {[DQ [VarSub @]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]}) ) (Com {[LIT_CHARS true]}) ) ) (FunctionDef get_release_name [] (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS notes]} {[LIT_CHARS --ref] [LIT_OTHER "="] [LIT_CHARS release]} {[LIT_CHARS show]} {[DQ [VarSub @]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]}) ) (Com {[LIT_CHARS true]}) ) ) (FunctionDef get_release_branch [] (List (= scope= flags=0 words=[] bindings=[('branch_name', {[ComSub (Com {[LIT_CHARS git_get_branch]})]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [ComSub (Com {[LIT_CHARS get_release_name]})]]} {[LIT_CHARS -o]} {[LIT_CHARS -z]} {[DQ [ComSub (Com {[LIT_CHARS get_release_candidate]})]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Not a release branch: "][VarSub branch_name][LIT_CHARS .]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub branch_name]]}) ) ) )