(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS fake-editor]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "exit 0\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS fake-editor]}) (= scope= flags=0 words=[] bindings=[('FAKE_EDITOR', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /fake-editor]]})]) (= scope= flags=1 words=[{[LIT_CHARS FAKE_EDITOR]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('HOOKDIR', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --git-dir]})][LIT_CHARS /hooks]]})]) (= scope= flags=0 words=[] bindings=[('HOOK', {[DQ [VarSub HOOKDIR][LIT_CHARS /prepare-commit-msg]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub HOOKDIR]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#!"][VarSub SHELL_PATH]]} < (FilenameRedirectNode filename={[DQ [VarSub HOOK]]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub HOOK]]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "\n"] [LIT_CHARS "if test \"$2\" = commit; then\n"] [LIT_CHARS " source=$(git rev-parse \"$3\")\n"] [LIT_CHARS "else\n"] [LIT_CHARS " source=${2-default}\n"] [LIT_CHARS "fi\n"] [LIT_CHARS "if test \"$GIT_EDITOR\" = :; then\n"] [LIT_CHARS " sed -e \"1s/.*/$source (no editor)/\" \"$1\" > msg.tmp\n"] [LIT_CHARS "else\n"] [LIT_CHARS " sed -e \"1s/.*/$source/\" \"$1\" > msg.tmp\n"] [LIT_CHARS "fi\n"] [LIT_CHARS "mv msg.tmp \"$1\"\n"] [LIT_CHARS "exit 0\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[DQ [VarSub HOOK]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS dummy]} {[LIT_CHARS template]} < (FilenameRedirectNode filename={[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --git-dir]})][LIT_CHARS /template]]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub HOOK]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "exit 1\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )