(List (Com {[LIT_CHARS .]} {[LIT_CHARS ./test.config]}) (= scope= flags=0 words=[] bindings=[('WIKI_URL', {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //] [DQ [VarSub SERVER_ADDR][LIT_CHARS ":"][VarSub PORT][LIT_CHARS /][VarSub WIKI_DIR_NAME]]})]) (= scope= flags=0 words=[] bindings=[('CURR_DIR', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (= scope= flags=0 words=[] bindings=[('TEST_OUTPUT_DIRECTORY', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (= scope= flags=0 words=[] bindings=[('TEST_DIRECTORY', {[DQ [VarSub CURR_DIR]] [LIT_CHARS /../../../t]})]) (= scope= flags=1 words=[{[LIT_CHARS TEST_OUTPUT_DIRECTORY]}, {[LIT_CHARS TEST_DIRECTORY]}, {[LIT_CHARS CURR_DIR]}] bindings=[]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub LIGHTTPD]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS false]]}) (= scope= flags=0 words=[] bindings=[('PORT', {[LIT_CHARS 80]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('WIKI_DIR_INST', {[DQ [VarSub CURR_DIR][LIT_CHARS /][VarSub WEB_WWW]]})]) ) (FunctionDef wiki_upload_file [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS upload_file]} {[DQ [VarSub @]]}) ) (FunctionDef wiki_getpage [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS get_page]} {[DQ [VarSub @]]}) ) (FunctionDef wiki_delete_page [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS delete_page]} {[DQ [VarSub @]]}) ) (FunctionDef wiki_editpage [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS edit_page]} {[DQ [VarSub @]]}) ) (FunctionDef die [] (Com {[LIT_CHARS die_with_status]} {[LIT_CHARS 1]} {[DQ [VarSub @]]}) ) (FunctionDef die_with_status [] (List (= scope= flags=0 words=[] bindings=[('status', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub *]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[DQ [VarSub status]]}) ) ) (FunctionDef test_check_precond [] (List (If (Pipeline! (Com {[LIT_CHARS test_have_prereq]} {[LIT_CHARS PERL]}) ) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]}) ) ) (= scope= flags=0 words=[] bindings=[('GIT_EXEC_PATH', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [LIT_CHARS ../..]]}) (Com {[LIT_CHARS pwd]}) ) )]})]) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [VarSub GIT_EXEC_PATH]] [SQ ] [DQ [VarSub PATH]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]}) ) ) ) ) (FunctionDef test_diff_directories [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub 1][LIT_CHARS _tmp]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub 1][LIT_CHARS _tmp]]}) (Com {[LIT_CHARS cp]} {[DQ [VarSub 1]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .mw]} {[DQ [VarSub 1][LIT_CHARS _tmp]]}) (Com {[LIT_CHARS diff]} {[LIT_CHARS -r]} {[LIT_CHARS -b]} {[DQ [VarSub 1][LIT_CHARS _tmp]]} {[DQ [VarSub 2]]}) ) ) (FunctionDef test_contains_N_files [] (If (Com {[LIT_CHARS test]} {[ComSub (Pipeline (Com {[LIT_CHARS ls]} {[LIT_CHARS --]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]} {[LIT_CHARS -ne]} {[DQ [VarSub 2]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "directory "][VarSub 1][LIT_CHARS " should contain "][VarSub 2][LIT_CHARS " files"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "it contains these files:"]]}) (Com {[LIT_CHARS ls]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS false]}) ) ) ) (FunctionDef wiki_check_content [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS wiki_tmp]}) (Com {[LIT_CHARS wiki_getpage]} {[DQ [VarSub 2]]} {[LIT_CHARS wiki_tmp]}) (= scope= flags=0 words=[] bindings=[('page_name', {[ComSub (Pipeline (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"][\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [VarSub 2]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\/"][LIT_CHARS "/%2F/g"]]}) )]})]) (Com {[LIT_CHARS diff]} {[LIT_CHARS -b]} {[DQ [VarSub 1]]} {[LIT_CHARS wiki_tmp/] [DQ [VarSub page_name]] [LIT_CHARS .mw]}) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS wiki_tmp]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "ERROR: file "][VarSub 2][LIT_CHARS " not found on wiki"]]}) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS wiki_tmp]}) ) ) (FunctionDef wiki_page_exist [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS wiki_tmp]}) (Com {[LIT_CHARS wiki_getpage]} {[DQ [VarSub 1]]} {[LIT_CHARS wiki_tmp]}) (= scope= flags=0 words=[] bindings=[('page_name', {[ComSub (Pipeline (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"][\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\/"][LIT_CHARS "/%2F/g"]]}) )]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS wiki_tmp/] [DQ [VarSub page_name]] [LIT_CHARS .mw]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS wiki_tmp]}) (ElseTrue) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS wiki_tmp]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "test failed: file "][VarSub 1][LIT_CHARS " not found on wiki"]]}) ) ) ) ) (FunctionDef wiki_getallpagename [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS getallpagename]}) ) (FunctionDef wiki_getallpagecategory [] (Com {[DQ [VarSub CURR_DIR]] [LIT_CHARS /test-gitmw.pl]} {[LIT_CHARS getallpagename]} {[DQ [VarSub @]]}) ) (FunctionDef wiki_getallpage [] (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub 2]]}) (Com {[LIT_CHARS wiki_getallpagename]}) (ElseTrue) (Com {[LIT_CHARS wiki_getallpagecategory]} {[DQ [VarSub 2]]}) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub 1]]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS line]}) (Com {[LIT_CHARS wiki_getpage]} {[DQ [VarSub line]]} {[VarSub 1]}) ) ) ) (FunctionDef error [] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub @]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (FunctionDef config_lighttpd [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub WEB]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub WEB_TMP]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub WEB_WWW]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub WEB] [LIT_CHARS /lighttpd.conf]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\tserver.document-root = "][RIGHT_D_QUOTE "\""][VarSub CURR_DIR][LIT_CHARS /][VarSub WEB_WWW][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\tserver.port = "][VarSub PORT][LIT_CHARS "\n"][LIT_CHARS "\tserver.pid-file = "][RIGHT_D_QUOTE "\""][VarSub CURR_DIR][LIT_CHARS /][VarSub WEB_TMP][LIT_CHARS /pid][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "\tserver.modules = (\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS mod_rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS mod_redirect][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS mod_access][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS mod_accesslog][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS mod_fastcgi][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\t)\n"][LIT_CHARS "\n"][LIT_CHARS "\tindex-file.names = ("][RIGHT_D_QUOTE "\""][LIT_CHARS index.php][RIGHT_D_QUOTE "\""][LIT_CHARS " , "][RIGHT_D_QUOTE "\""][LIT_CHARS index.html][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "\tmimetype.assign\t\t = (\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .pdf][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/pdf][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .sig][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/pgp-signature][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .spl][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/futuresplash][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .class][RIGHT_D_QUOTE "\""][LIT_CHARS "\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/octet-stream][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .ps][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/postscript][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .torrent][RIGHT_D_QUOTE "\""][LIT_CHARS "\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-bittorrent][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .dvi][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-dvi][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .gz][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-gzip][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .pac][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-ns-proxy-autoconfig][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .swf][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-shockwave-flash][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .tar.gz][RIGHT_D_QUOTE "\""][LIT_CHARS "\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-tgz][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .tgz][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-tgz][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .tar][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-tar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .zip][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/zip][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .mp3][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS audio/mpeg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .m3u][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS audio/x-mpegurl][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .wma][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS audio/x-ms-wma][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .wax][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS audio/x-ms-wax][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .ogg][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/ogg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .wav][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS audio/x-wav][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .gif][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/gif][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .jpg][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/jpeg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .jpeg][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/jpeg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .png][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/png][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .xbm][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/x-xbitmap][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .xpm][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/x-xpixmap][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .xwd][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS image/x-xwindowdump][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .css][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/css][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .html][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/html][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .htm][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/html][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .js][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/javascript][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .asc][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .c][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .cpp][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .log][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .conf][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .text][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .txt][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .dtd][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/xml][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .xml][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/xml][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .mpeg][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/mpeg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .mpg][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/mpeg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .mov][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/quicktime][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .qt][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/quicktime][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .avi][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/x-msvideo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .asf][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/x-ms-asf][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .asx][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/x-ms-asf][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .wmv][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS video/x-ms-wmv][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .bz2][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-bzip][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .tbz][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-bzip-compressed-tar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS .tar.bz2][RIGHT_D_QUOTE "\""][LIT_CHARS "\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS application/x-bzip-compressed-tar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\t\t=>\t"][RIGHT_D_QUOTE "\""][LIT_CHARS text/plain][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\t)\n"][LIT_CHARS "\n"][LIT_CHARS "\tfastcgi.server = ( "][RIGHT_D_QUOTE "\""][LIT_CHARS .php][RIGHT_D_QUOTE "\""][LIT_CHARS " =>\n"][LIT_CHARS "\t("][RIGHT_D_QUOTE "\""][LIT_CHARS localhost][RIGHT_D_QUOTE "\""][LIT_CHARS " =>\n"][LIT_CHARS "\t( "][RIGHT_D_QUOTE "\""][LIT_CHARS socket][RIGHT_D_QUOTE "\""][LIT_CHARS " => "][RIGHT_D_QUOTE "\""][VarSub CURR_DIR][LIT_CHARS /][VarSub WEB_TMP][LIT_CHARS /php.socket][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS "\t"][RIGHT_D_QUOTE "\""][LIT_CHARS bin-path][RIGHT_D_QUOTE "\""][LIT_CHARS " => "][RIGHT_D_QUOTE "\""][VarSub PHP_DIR][LIT_CHARS "/php-cgi -c "][VarSub CURR_DIR][LIT_CHARS /][VarSub WEB][LIT_CHARS /php.ini][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "\t)\n"][LIT_CHARS "\t)\n"][LIT_CHARS "\t)\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub WEB] [LIT_CHARS /php.ini]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\tsession.save_path ='"][VarSub CURR_DIR][LIT_CHARS /][VarSub WEB_TMP][LIT_CHARS "'\n"]]} 0), > ) ) ) (FunctionDef start_lighttpd [] (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub WEB_TMP][LIT_CHARS /pid]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Instance already running. Restarting..."]]}) (Com {[LIT_CHARS stop_lighttpd]}) ) ) (Com {[LIT_CHARS config_lighttpd]}) (Com {[DQ [VarSub LIGHTTPD_DIR]] [LIT_CHARS /lighttpd]} {[LIT_CHARS -f]} {[DQ [VarSub WEB]] [LIT_CHARS /lighttpd.conf]}) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Could not execute http deamon lighttpd"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) ) (FunctionDef stop_lighttpd [] (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub WEB_TMP][LIT_CHARS /pid]]}) (Com {[LIT_CHARS kill]} {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub WEB_TMP][LIT_CHARS /pid]]})]}) ) ) (FunctionDef create_db [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub TMP][LIT_CHARS /][VarSub DB_FILE]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Generating the SQLite database file. It can take some time ..."]]}) (Com {[LIT_CHARS php]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_INSTALL_SCRIPT]]} {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub DB_FILE]]} {[LIT_CHARS .sqlite]})]} {[DQ [VarSub WIKI_ADMIN]]} {[DQ [VarSub WIKI_PASSW]]} {[DQ [VarSub TMP]]} {[DQ [VarSub PORT]]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub TMP][LIT_CHARS /][VarSub DB_FILE]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Can't create database file "][VarSub TMP][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS ". Try to run ./install-wiki.sh delete first."]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cp]} {[DQ [VarSub TMP][LIT_CHARS /][VarSub DB_FILE]]} {[DQ [VarSub FILES_FOLDER]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Unable to copy "][VarSub TMP][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " to "][VarSub FILES_FOLDER]]}) ) ) ) (FunctionDef wiki_install [] (List (If (Com {[LIT_CHARS test]} {[VarSub LIGHTTPD]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS true]]}) (Com {[LIT_CHARS start_lighttpd]}) ) (= scope= flags=0 words=[] bindings=[('SERVER_ADDR', {[VarSub SERVER_ADDR] [LIT_OTHER ":"] [VarSub PORT]})]) (AndOr OP_OR_IF (Subshell (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Folder "][VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME][LIT_CHARS " doesn't exist.\n"][LIT_CHARS "\t\tPlease create it and launch the script again."]]}) ) (= scope= flags=0 words=[] bindings=[('MW_FILENAME', {[DQ [LIT_CHARS mediawiki-][VarSub MW_VERSION_MAJOR][LIT_CHARS .][VarSub MW_VERSION_MINOR][LIT_CHARS .tar.gz]]})]) (Com {[LIT_CHARS cd]} {[DQ [VarSub TMP]]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[VarSub MW_FILENAME]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading "][VarSub MW_VERSION_MAJOR][LIT_CHARS .][VarSub MW_VERSION_MINOR][LIT_CHARS " sources ..."]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS wget]} {[DQ [LIT_CHARS "http://download.wikimedia.org/mediawiki/"][VarSub MW_VERSION_MAJOR][LIT_CHARS /][VarSub MW_FILENAME]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Unable to download "]]} {[DQ [LIT_CHARS "http://download.wikimedia.org/mediawiki/"][VarSub MW_VERSION_MAJOR][LIT_CHARS /]]} {[DQ [VarSub MW_FILENAME][LIT_CHARS ". "]]} {[DQ [LIT_CHARS "Please fix your connection and launch the script again."]]}) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub MW_FILENAME][LIT_CHARS " downloaded in "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS ". "]]} {[DQ [LIT_CHARS "You can delete it later if you want."]]}) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Reusing existing "][VarSub MW_FILENAME][LIT_CHARS " downloaded in "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS .]]}) ) (= scope= flags=0 words=[] bindings=[('archive_abs_path', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub MW_FILENAME]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME][LIT_CHARS /]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "can't cd to "][VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME][LIT_CHARS /]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS tar]} {[LIT_CHARS xzf]} {[DQ [VarSub archive_abs_path]]} {[LIT_CHARS --strip-components] [LIT_OTHER "="] [LIT_CHARS 1]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Unable to extract WikiMedia's files from "][VarSub archive_abs_path][LIT_CHARS " to "]]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (Com {[LIT_CHARS create_db]}) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings.php]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Can't find "][VarSub FILES_FOLDER][LIT_CHARS "/LocalSettings.php "]]} {[DQ [LIT_CHARS "in the current folder. "]]} {[DQ [LIT_CHARS "Please run the script inside its folder."]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cp]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings.php]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Unable to copy "][VarSub FILES_FOLDER][LIT_CHARS "/LocalSettings.php "]]} {[DQ [LIT_CHARS "to "][VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) ) (= scope= flags=0 words=[] bindings=[('file_swap', {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-swap.php]]})]) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s,@WG_SCRIPT_PATH@,/"][VarSub WIKI_DIR_NAME][LIT_CHARS ","]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} < (FilenameRedirectNode filename={[DQ [VarSub file_swap]]} "> 1), > ) (Com {[LIT_CHARS mv]} {[DQ [VarSub file_swap]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s,@WG_SERVER@,http://"][VarSub SERVER_ADDR][LIT_CHARS ","]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} < (FilenameRedirectNode filename={[DQ [VarSub file_swap]]} "> 1), > ) (Com {[LIT_CHARS mv]} {[DQ [VarSub file_swap]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s,@WG_SQLITE_DATADIR@,"][VarSub TMP][LIT_CHARS ","]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} < (FilenameRedirectNode filename={[DQ [VarSub file_swap]]} "> 1), > ) (Com {[LIT_CHARS mv]} {[DQ [VarSub file_swap]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s,@WG_SQLITE_DATAFILE@,"][ComSub (Com {[LIT_CHARS basename]} {[VarSub DB_FILE]} {[LIT_CHARS .sqlite]})][LIT_CHARS ","]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} < (FilenameRedirectNode filename={[DQ [VarSub file_swap]]} "> 1), > ) (Com {[LIT_CHARS mv]} {[DQ [VarSub file_swap]]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS mv]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME][LIT_CHARS /LocalSettings.php]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Unable to move "][VarSub FILES_FOLDER][LIT_CHARS /LocalSettings-tmp.php]]} {[DQ [LIT_CHARS "in "][VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "File "][VarSub FILES_FOLDER][LIT_CHARS "/LocalSettings.php is set in"]]} {[DQ [LIT_CHARS " "][VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Your wiki has been installed. You can check it at\n"][LIT_CHARS "\t\thttp://"][VarSub SERVER_ADDR][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) ) ) (FunctionDef wiki_reset [] (List (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS ../][VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Can't find ../"][VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " in the current folder."]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cp]} {[DQ [LIT_CHARS ../][VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE]]} {[DQ [VarSub TMP]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Can't copy ../"][VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " in "][VarSub TMP]]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "File "][VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " is set in "][VarSub TMP]]}) ) ) (FunctionDef wiki_delete [] (List (If (Com {[LIT_CHARS test]} {[VarSub LIGHTTPD]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS true]]}) (List (Com {[LIT_CHARS stop_lighttpd]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[DQ [VarSub WEB]]}) ) (ElseTrue) (List (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub WIKI_DIR_INST][LIT_CHARS /][VarSub WIKI_DIR_NAME]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Wiki's directory "][VarSub WIKI_DIR_INST][LIT_CHARS /]]} {[DQ [VarSub WIKI_DIR_NAME][LIT_CHARS " could not be deleted"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub TMP][LIT_CHARS /][VarSub DB_FILE]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Database "][VarSub TMP][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " could not be deleted."]]}) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub TMP][LIT_CHARS /][VarSub DB_FILE]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Database "][VarSub TMP][LIT_CHARS /][VarSub DB_FILE][LIT_CHARS " could not be deleted."]]}) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub FILES_FOLDER][LIT_CHARS /][VarSub DB_FILE]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub TMP][LIT_CHARS /mediawiki-][VarSub MW_VERSION_MAJOR][LIT_CHARS .][VarSub MW_VERSION_MINOR][LIT_CHARS .tar.gz]]}) ) ) )