(List (= scope= flags=0 words=[] bindings=[('LF', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('test_argv', {[SQ ]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_NEQUAL "!="]} {[LIT_CHARS 0]} ) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS --va]}, {[LIT_CHARS --val]}, {[LIT_CHARS --valg]}, {[LIT_CHARS --valgr]}, {[LIT_CHARS --valgri]}, {[LIT_CHARS --valgrin]}, {[LIT_CHARS --valgrind]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('cgit_valgrind', {[LIT_CHARS t]})]) (= scope= flags=0 words=[] bindings=[('test_argv', {[DQ [VarSub test_argv][VarSub LF][LIT_CHARS --verbose]]})]) ) (= scope= flags=0 words=[] bindings=[('test_argv', {[DQ [VarSub test_argv][VarSub LF][VarSub 1]]})]) ) (Com {[LIT_CHARS shift]} ) ) ) (= scope= flags=0 words=[] bindings=[('OLDIFS', {[VarSub IFS]})]) (= scope= flags=0 words=[] bindings=[('IFS', {[VarSub LF]})]) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[VarSub test_argv]} ) (= scope= flags=0 words=[] bindings=[('IFS', {[VarSub OLDIFS]})]) (Com {[LIT_OTHER ":"]} {[VarSub TEST_DIRECTORY test_op=VS_TEST_EQUALS {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_SLASH /] [LIT_CHARS ..] [LIT_SLASH /] [LIT_CHARS git] [LIT_SLASH /] [LIT_CHARS t]}]} ) (Com {[LIT_OTHER ":"]} {[VarSub TEST_OUTPUT_DIRECTORY test_op=VS_TEST_EQUALS {[ComSub (Com {[LIT_CHARS pwd]})]}]} ) (= scope= flags=0 words=[] bindings=[('TEST_NO_CREATE_REPO', {[LIT_CHARS YesPlease]})]) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /test-lib.sh]} ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub cgit_valgrind]]} ) (List (= scope= flags=0 words=[] bindings=[('GIT_VALGRIND', {[DQ [VarSub TEST_DIRECTORY][LIT_CHARS /valgrind]]})]) (= scope= flags=0 words=[] bindings=[('CGIT_VALGRIND', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS ../valgrind]}) (Com {[LIT_CHARS pwd]}) )]})]) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [VarSub CGIT_VALGRIND][LIT_CHARS "/bin:"][VarSub PATH]]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_VALGRIND]}, {[LIT_CHARS CGIT_VALGRIND]}] bindings=[]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/../..:"][VarSub PATH]]})]) ) (= scope= flags=0 words=[] bindings=[('FILTER_DIRECTORY', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS ../filters]}) (Com {[LIT_CHARS pwd]}) )]})]) (If (Pipeline (Com {[LIT_CHARS cgit]} {[LIT_CHARS --version]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -F]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "[+] Lua scripting"]]} ) ) (= scope= flags=1 words=[] bindings=[('CGIT_HAS_LUA', {[LIT_CHARS 1]})]) (ElseTrue) (= scope= flags=1 words=[] bindings=[('CGIT_HAS_LUA', {[LIT_CHARS 0]})]) ) (FunctionDef mkrepo [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('count', {[VarSub 2]})]) (Com {[LIT_CHARS test_create_repo]} {[DQ [VarSub name]]} ) (Subshell (List (Com {[LIT_CHARS cd]} {[DQ [VarSub name]]} ) (= scope= flags=0 words=[] bindings=[('n', {[LIT_CHARS 1]})]) (While (Com {[LIT_CHARS test]} {[VarSub n]} {[LIT_CHARS -le]} {[VarSub count]} ) (List (Com {[LIT_CHARS echo]} {[VarSub n]} < (FilenameRedirectNode filename={[LIT_CHARS file-] [VarSub n]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS file-] [VarSub n]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "commit "][VarSub n]]} ) (= scope= flags=0 words=[] bindings=[('n', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub n]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub 3]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS testplus]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS hello]]} < (FilenameRedirectNode filename={[LIT_CHARS a] [LIT_OTHER "+"] [LIT_CHARS b]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS a] [LIT_OTHER "+"] [LIT_CHARS b]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "add a+b"]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS branch]} {[DQ [LIT_CHARS "1+2"]]} ) ) ) ) ) ) ) (FunctionDef setup_repos [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cache]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS cache]} ) (Com {[LIT_CHARS mkrepo]} {[LIT_CHARS repos/foo]} {[LIT_CHARS 5]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS mkrepo]} {[LIT_CHARS repos/bar]} {[LIT_CHARS 50]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS mkrepo]} {[LIT_CHARS repos/foo] [LIT_OTHER "+"] [LIT_CHARS bar]} {[LIT_CHARS 10]} {[LIT_CHARS testplus]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS mkrepo]} {[DQ [LIT_CHARS "repos/with space"]]} {[LIT_CHARS 2]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS mkrepo]} {[LIT_CHARS repos/filter]} {[LIT_CHARS 5]} {[LIT_CHARS testplus]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS cgitrc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "virtual-root=/\n"][LIT_CHARS "cache-root="][VarSub PWD][LIT_CHARS "/cache\n"][LIT_CHARS "\n"][LIT_CHARS "cache-size=1021\n"][LIT_CHARS "snapshots=tar.gz tar.bz zip\n"][LIT_CHARS "enable-log-filecount=1\n"][LIT_CHARS "enable-log-linecount=1\n"][LIT_CHARS "summary-log=5\n"][LIT_CHARS "summary-branches=5\n"][LIT_CHARS "summary-tags=5\n"][LIT_CHARS "clone-url=git://example.org/"][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "CGIT_REPO_URL.git\n"][LIT_CHARS "enable-filter-overrides=1\n"][LIT_CHARS "\n"][LIT_CHARS "repo.url=foo\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/foo/.git\n"][LIT_CHARS "# Do not specify a description for this repo, as it then will be assigned\n"][LIT_CHARS "# the constant value "][RIGHT_D_QUOTE "\""][LIT_CHARS "[no description]"][RIGHT_D_QUOTE "\""][LIT_CHARS " (which actually used to cause a\n"][LIT_CHARS "# segfault).\n"][LIT_CHARS "\n"][LIT_CHARS "repo.url=bar\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/bar/.git\n"][LIT_CHARS "repo.desc=the bar repo\n"][LIT_CHARS "\n"][LIT_CHARS "repo.url=foo+bar\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/foo+bar/.git\n"][LIT_CHARS "repo.desc=the foo+bar repo\n"][LIT_CHARS "\n"][LIT_CHARS "repo.url=with space\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/with space/.git\n"][LIT_CHARS "repo.desc=spaced repo\n"][LIT_CHARS "\n"][LIT_CHARS "repo.url=filter-exec\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/filter/.git\n"][LIT_CHARS "repo.desc=filtered repo\n"][LIT_CHARS "repo.about-filter=exec:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.sh\n"][LIT_CHARS "repo.commit-filter=exec:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.sh\n"][LIT_CHARS "repo.email-filter=exec:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.sh\n"][LIT_CHARS "repo.source-filter=exec:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.sh\n"][LIT_CHARS "repo.readme=master:a+b\n"]]} 0), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub CGIT_HAS_LUA]} {[LIT_CHARS -eq]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS cgitrc]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "repo.url=filter-lua\n"][LIT_CHARS "repo.path="][VarSub PWD][LIT_CHARS "/repos/filter/.git\n"][LIT_CHARS "repo.desc=filtered repo\n"][LIT_CHARS "repo.about-filter=lua:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.lua\n"][LIT_CHARS "repo.commit-filter=lua:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.lua\n"][LIT_CHARS "repo.email-filter=lua:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.lua\n"][LIT_CHARS "repo.source-filter=lua:"][VarSub FILTER_DIRECTORY][LIT_CHARS "/dump.lua\n"][LIT_CHARS "repo.readme=master:a+b\n"]]} 0), > ) ) ) ) (FunctionDef cgit_query [] (Com {[LIT_CHARS cgit]} more_env=[('CGIT_CONFIG', {[DQ [VarSub PWD][LIT_CHARS /cgitrc]]}), ('QUERY_STRING', {[DQ [VarSub 1]]})] ) ) (FunctionDef cgit_url [] (Com {[LIT_CHARS cgit]} more_env=[('CGIT_CONFIG', {[DQ [VarSub PWD][LIT_CHARS /cgitrc]]}), ('QUERY_STRING', {[DQ [LIT_CHARS "url="][VarSub 1]]})] ) ) (FunctionDef strip_headers [] (List (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS line]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub line]]} ) (Com {[LIT_CHARS break]} ) ) ) (Com {[LIT_CHARS cat]} ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub CGIT_TEST_NO_CREATE_REPOS]]} ) (Com {[LIT_CHARS setup_repos]} ) ) )