(CommandList children: [ (C {(set)} {(-eu)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPT_DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(cd)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [61 66] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [57 68] ) ) } ) (C {(pwd)}) ] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub "$("> spids: [53 74] ) } spids: [52] ) ] spids: [52] ) (AndOr children: [ (C {(source)} {(${ VSub_Name SCRIPT_DIR) (/testenv.sh)}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("testenv.sh not found!"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[93])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [85] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(source)} {(${ VSub_Name SCRIPT_DIR) (/common.sh)}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("common.sh not found!"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[122])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [114] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELEASE_SCRIPT) op: Equal rhs: {(${ VSub_Name SCRIPT_DIR) (/release.sh)} spids: [134] ) ] spids: [134] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GERRIT_ROOT) op: Equal rhs: {(${ VSub_Name TEST_TMPDIR) (/git/gerrit)} spids: [141] ) ] spids: [141] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GITHUB_ROOT) op: Equal rhs: {(${ VSub_Name TEST_TMPDIR) (/git/github)} spids: [147] ) ] spids: [147] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WORKSPACE) op: Equal rhs: {(${ VSub_Name TEST_TMPDIR) (/git/workspace)} spids: [153] ) ] spids: [153] ) (C {(export)} {(Lit_VarLike "RELEASE_REPOSITORIES=") (DQ (${ VSub_Name GITHUB_ROOT))}) (C {(export)} {(Lit_VarLike "MASTER_REPOSITORIES=") (DQ (${ VSub_Name GITHUB_ROOT) (" ") (${ VSub_Name GERRIT_ROOT)) } ) (C {(setup_git_repository)}) (FuncDef name: set_up body: (BraceGroup children: [ (C {(rm)} {(-fr)} {(${ VSub_Name GERRIT_ROOT)} {(${ VSub_Name GITHUB_ROOT)} {(${ VSub_Name WORKSPACE)} ) (C {(git)} {(clone)} {(-l)} {(--bare)} {(-q)} {(${ VSub_Name MASTER_ROOT)} {(${ VSub_Name GERRIT_ROOT)} ) (C {(git)} {(clone)} {(-l)} {(--bare)} {(-q)} {(${ VSub_Name MASTER_ROOT)} {(${ VSub_Name GITHUB_ROOT)} ) (C {(git)} {(clone)} {(-l)} {(-q)} {(${ VSub_Name GERRIT_ROOT)} {(${ VSub_Name WORKSPACE)}) (C {(cd)} {(${ VSub_Name WORKSPACE)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_DGreat fd:-1 arg_word:{(.git/config)} spids:[291]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("[user]\n") (" name = Bazel tests\n") (" email = noreply@google.com\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [294] ) ] ) ] spids: [191] ) spids: [185 190] ) (FuncDef name: create body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:old_branch) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git_get_branch)})]) left_token: <Left_CommandSub "$("> spids: [315 317] ) } spids: [314] ) ] spids: [312] ) (Sentence child: (C {(${ VSub_Name RELEASE_SCRIPT)} {(create)} {($ VSub_At "$@")}) terminator: <Op_Amp "&"> ) (AndOr children: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [329] ) ] ) (C {(fail)} { (DQ ("Failed to cut release ") ($ VSub_Number "$1") (" at commit ") ($ VSub_Number "$2") ) } ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:new_branch) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git_get_branch)})]) left_token: <Left_CommandSub "$("> spids: [350 352] ) } spids: [349] ) ] spids: [347] ) (C {(assert_equals)} {(DQ ($ VSub_Name "$old_branch"))} {(DQ ($ VSub_Name "$new_branch"))}) (C {(assert_contains)} { (DQ ("Created ") ($ VSub_Number "$1") (".* on branch release-") ($ VSub_Number "$1") (.)) } {($ VSub_Name "$TEST_log")} ) (SimpleCommand words: [ {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {(DQ (release-) ($ VSub_Number "$1"))} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [397] ) ] ) ] spids: [309] ) spids: [303 308] ) (FuncDef name: push body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:branch) op: Equal rhs: {(DQ (release-) ($ VSub_Number "$1"))} spids: [414] ) ] spids: [412] ) (C {(git)} {(checkout)} {(DQ ($ VSub_Name "$branch"))}) (AndOr children: [ (C {(${ VSub_Name RELEASE_SCRIPT)} {(push)}) (C {(fail)} {(DQ ("Failed to push release branch ") ($ VSub_Name "$branch"))}) ] op_id: Op_DPipe ) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(branch)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [456] ) ] ) (C {(expect_log)} {(DQ ($ VSub_Name "$branch"))}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(branch)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [477] ) ] ) (C {(expect_not_log)} {(DQ ($ VSub_Name "$branch"))}) (C {(assert_equals)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {($ VSub_Name "$branch")} ) ] ) left_token: <Left_CommandSub "$("> spids: [491 506] ) ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {($ VSub_Name "$branch")} ) ] ) left_token: <Left_CommandSub "$("> spids: [512 533] ) ) } ) ] spids: [409] ) spids: [403 408] ) (FuncDef name: release body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tag) op: Equal rhs: {($ VSub_Number "$1")} spids: [550] ) ] spids: [548] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:branch) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git_get_branch)})]) left_token: <Left_CommandSub "$("> spids: [557 559] ) } spids: [556] ) ] spids: [554] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:changelog) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(cat)} {(CHANGELOG.md)})]) left_token: <Left_CommandSub "$("> spids: [565 569] ) } spids: [564] ) ] spids: [562] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:commit) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {($ VSub_Name "$branch")} ) ] ) left_token: <Left_CommandSub "$("> spids: [575 590] ) } spids: [574] ) ] spids: [572] ) (AndOr children: [ (Pipeline children: [(C {(echo)} {(y)}) (C {(${ VSub_Name RELEASE_SCRIPT)} {(release)})] negated: False ) (C {(fail)} {(DQ ("Failed to release ") (${ VSub_Name branch))}) ] op_id: Op_DPipe ) (C {(assert_equals)} {(master)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git_get_branch)})]) left_token: <Left_CommandSub "$("> spids: [622 624] ) ) } ) (SimpleCommand words: [{(git)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [632] ) ] ) (C {(expect_log)} {($ VSub_Name "$tag")}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [651] ) ] ) (C {(expect_log)} {($ VSub_Name "$tag")}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [670] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$tag")}) (C {(assert_equals)} {(DQ ($ VSub_Name "$commit"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {($ VSub_Name "$tag")} ) ] ) left_token: <Left_CommandSub "$("> spids: [690 705] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$commit"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {(master)} ) ] ) left_token: <Left_CommandSub "$("> spids: [716 731] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$commit"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {($ VSub_Name "$tag")} ) ] ) left_token: <Left_CommandSub "$("> spids: [744 765] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$commit"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {(master)} ) ] ) left_token: <Left_CommandSub "$("> spids: [778 799] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$commit"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(show)} {(-s)} {(--pretty) (Lit_Other "=") (format) (Lit_Other ":") (Lit_Other "%") (B)} {(master)} ) ] ) left_token: <Left_CommandSub "$("> spids: [812 833] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(show)} {($ VSub_Name "$tag") (Lit_Other ":") (CHANGELOG.md)}) ] ) left_token: <Left_CommandSub "$("> spids: [849 857] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)})] ) left_token: <Left_CommandSub "$("> spids: [868 876] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {($ VSub_Name "$tag") (Lit_Other ":") (CHANGELOG.md)} ) ] ) left_token: <Left_CommandSub "$("> spids: [889 903] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)} ) ] ) left_token: <Left_CommandSub "$("> spids: [916 930] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)} ) ] ) left_token: <Left_CommandSub "$("> spids: [943 957] ) ) } ) ] spids: [545] ) spids: [539 544] ) (FuncDef name: abandon body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tag) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [975] ) ] spids: [973] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:branch) op: Equal rhs: {(DQ (release-) ($ VSub_Name "$tag"))} spids: [983] ) ] spids: [981] ) (C {(git)} {(checkout)} {(DQ ($ VSub_Name "$branch"))}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:changelog) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)})] ) left_token: <Left_CommandSub "$("> spids: [1003 1011] ) ) } spids: [1001] ) ] spids: [999] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:master_sha1) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(master)})]) left_token: <Left_CommandSub "$("> spids: [1018 1024] ) } spids: [1017] ) ] spids: [1015] ) (AndOr children: [ (Pipeline children: [(C {(echo)} {(y)}) (C {(${ VSub_Name RELEASE_SCRIPT)} {(abandon)})] negated: False ) (C {(fail)} {(DQ ("Failed to abandon release ") (${ VSub_Name branch))}) ] op_id: Op_DPipe ) (C {(assert_equals)} {(master)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git_get_branch)})]) left_token: <Left_CommandSub "$("> spids: [1056 1058] ) ) } ) (SimpleCommand words: [{(git)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [1071] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$tag")}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [1090] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$tag")}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(tag)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [1109] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$tag")}) (SimpleCommand words: [{(git)} {(branch)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [1127] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$branch")}) (SimpleCommand words: [{(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(branch)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [1146] ) ] ) (C {(expect_not_log)} {($ VSub_Name "$branch")}) (C {(assert_equals)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(master)})]) left_token: <Left_CommandSub "$("> spids: [1163 1169] ) ) } {(DQ (${ VSub_Name master_sha1))} ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)})] ) left_token: <Left_CommandSub "$("> spids: [1191 1199] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GITHUB_ROOT)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)} ) ] ) left_token: <Left_CommandSub "$("> spids: [1212 1226] ) ) } ) (C {(assert_equals)} {(DQ ($ VSub_Name "$changelog"))} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(--git-dir) (Lit_Other "=") (${ VSub_Name GERRIT_ROOT)} {(show)} {(master) (Lit_Other ":") (CHANGELOG.md)} ) ] ) left_token: <Left_CommandSub "$("> spids: [1239 1253] ) ) } ) ] spids: [970] ) spids: [964 969] ) (FuncDef name: test_release_workflow body: (BraceGroup children: [ (C {(export)} {(Lit_VarLike "EDITOR=") (true)}) (C {(create)} {(v0)} {(965c392)}) (C {(expect_log)} {(DQ ("Release v0"))}) (C {(expect_log)} {(DQ ("Initial release"))}) (C {(push)} {(v0)}) (C {(release)} {(v0)}) (C {(export)} {(Lit_VarLike "EDITOR=") (${ VSub_Name TEST_TMPDIR) (/editor.sh)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:RELNOTES) op: Equal rhs: { (SQ <"Incompatible changes:\n"> <"\n"> <" - Remove deprecated \"make var\" INCDIR\n"> <"\n"> <"Important changes:\n"> <"\n"> <" - Use a default implementation of a progress message, rather than\n"> <" defaulting to null for all SpawnActions."> ) } spids: [1339] ) ] spids: [1337] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name TEST_TMPDIR) (/expected.log)} spids: [1355] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("# Editing release notes\n") ("# Modify the release notes to make them suitable for the release.\n") ("# Every line starting with a # will be removed as well as every\n") ("# empty line at the start and at the end.\n") ("\n") ("# Release v1 (") (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other "+") (Lit_Other "%") (Y-) (Lit_Other "%") (m-) (Lit_Other "%") (d) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1370 1380] ) (")\n") ("\n") (${ VSub_Name RELNOTES) ("\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1361] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ("Test replacement"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name TEST_TMPDIR) (/replacement.log)} spids: [1396] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name EDITOR)} spids: [1406] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!/bin/bash\n") ("\n") ("# 1. Assert the file is correct\n") ("if [ ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(cat ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1)") (Right_DoubleQuote "\"") (" != ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(cat ") (${ VSub_Name TEST_TMPDIR) ("/expected.log)") (Right_DoubleQuote "\"") (" ]; then\n") (" echo ") (Right_DoubleQuote "\"") ("Expected:") (Right_DoubleQuote "\"") (" >&2\n") (" cat ") (${ VSub_Name TEST_TMPDIR) ("/expected.log >&2\n") (" echo ") (Right_DoubleQuote "\"") ("Got:") (Right_DoubleQuote "\"") (" >&2\n") (" cat ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1 >&2\n") (" exit 1\n") ("fi\n") ("\n") ("# 2. write the replacement in the input file\n") ("cat ") (${ VSub_Name TEST_TMPDIR) ("/replacement.log >") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1411] ) ] ) (C {(chmod)} {(Lit_Other "+") (x)} {(${ VSub_Name EDITOR)}) (C {(create)} {(v1)} {(1170dc6)} {(0540fde)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:header) op: Equal rhs: {(SQ <"Release v1 (">) (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other "+") (Lit_Other "%") (Y-) (Lit_Other "%") (m-) (Lit_Other "%") (d) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1489 1499] ) (SQ <")\n"> <"\n"> <"Baseline: 1170dc6\n"> <"\n"> <"Cherry picks:\n"> < " + 0540fde: Extract version numbers that look like \"..._1.2.3_...\"\n" > <" from BUILD_EMBED_LABEL into Info.plist.\n"> <"\n"> ) } spids: [1485] ) ] spids: [1483] ) (C {(assert_equals)} {(DQ (${ VSub_Name header) ("Test replacement"))} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(cat)} {(${ VSub_Name TEST_log)})]) left_token: <Left_CommandSub "$("> spids: [1522 1528] ) ) } ) (C {(push)} {(v1)}) (SimpleCommand words: [ {(echo)} { (DQ ("#!") (CommandSubPart command_list: (CommandList children:[(C {(which)} {(true)})]) left_token: <Left_CommandSub "$("> spids: [1546 1550] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name EDITOR)} spids: [1553] ) ] ) (C {(create)} {(v1)} {(1170dc6)} {(0540fde)} {(cef25c4)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:header) op: Equal rhs: {(SQ <"Release v1 (">) (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other "+") (Lit_Other "%") (Y-) (Lit_Other "%") (m-) (Lit_Other "%") (d) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1574 1584] ) (SQ <")\n"> <"\n"> <"Baseline: 1170dc6\n"> <"\n"> <"Cherry picks:\n"> < " + 0540fde: Extract version numbers that look like \"..._1.2.3_...\"\n" > <" from BUILD_EMBED_LABEL into Info.plist.\n"> <" + cef25c4: RELNOTES: Attribute error messages related to Android\n"> <" resources are easier to understand now.\n"> <"\n"> ) } spids: [1570] ) ] spids: [1570] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RELNOTES) op: Equal rhs: {(DQ (${ VSub_Name RELNOTES)) (SQ <"\n"> <" - Attribute error messages related to Android resources are easier\n"> <" to understand now."> ) } spids: [1599] ) ] spids: [1599] ) (C {(assert_equals)} {(DQ (${ VSub_Name header) (${ VSub_Name RELNOTES))} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(cat)} {(${ VSub_Name TEST_log)})]) left_token: <Left_CommandSub "$("> spids: [1624 1630] ) ) } ) (C {(assert_equals)} {(2)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(get_release_candidate)})]) left_token: <Left_CommandSub "$("> spids: [1639 1641] ) ) } ) (C {(push)} {(v1)}) (C {(release)} {(v1)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name EDITOR)} spids: [1667] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!/bin/bash\n") ("# Make sure we have release notes or the release will be cancelled.\n") ("echo 'Dummy release' >") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1672] ) ] ) (C {(create)} {(v2)} {(2464526)}) (C {(expect_log)} {(DQ ("Release v2"))}) (C {(expect_log)} {(DQ ("Baseline: 2464526"))}) (C {(abandon)} {(v2)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {("echo HOOK-SHOULD-BE-IGNORED >>$1\n")} do_expansion: False here_end: EOF was_filled: True spids: [1721] ) (Redir op_id: Redir_Great fd: -1 arg_word: {(.git/hooks/commit-msg)} spids: [1726] ) ] ) (C {(chmod)} {(Lit_Other "+") (x)} {(.git/hooks/commit-msg)}) (C {(create)} {(v2)} {(2464526)}) (C {(expect_log)} {(DQ ("Release v2"))}) (C {(expect_log)} {(DQ ("Baseline: 2464526"))}) (C {(expect_not_log)} {(DQ (HOOK-SHOULD-BE-IGNORED))}) (C {(push)} {(v2)}) (C {(abandon)} {(v2)}) ] spids: [1266] ) spids: [1260 1265] ) (C {(run_suite)} {(DQ ("Release tests"))}) ] )