(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PERL) op:Equal rhs:{(SQ <"@@PERL@@">)} spids:[13])] spids: [13] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS_KEEPDASHDASH) op:Equal rhs:{(SQ )} spids:[18])] spids: [18] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS_STUCKLONG) op:Equal rhs:{(SQ )} spids:[20])] spids: [20] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTIONS_SPEC) op: Equal rhs: { (DQ ("git instaweb [options] (--start | --stop | --restart)\n") ("--\n") ("l,local only bind on 127.0.0.1\n") ("p,port= the port to bind to\n") ("d,httpd= the command to launch\n") ("b,browser= the browser to launch\n") ("m,module-path= the module path (only needed for apache2)\n") (" Action\n") ("stop stop the web server\n") ("start start the web server\n") ("restart restart the web server\n") ) } spids: [22] ) ] spids: [22] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(Yes)} spids:[39])] spids: [39] ) (C {(.)} {(git-sh-setup)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fqgitdir) op: Equal rhs: {(DQ ($ VSub_Name "$GIT_DIR"))} spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--bool)} {(--get)} {(instaweb.local)})] ) left_token: <Left_CommandSub "$("> spids: [54 64] ) ) } spids: [52] ) ] spids: [52] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(instaweb.httpd)})] ) left_token: <Left_CommandSub "$("> spids: [69 77] ) ) } spids: [67] ) ] spids: [67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:root) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(instaweb.gitwebdir)})] ) left_token: <Left_CommandSub "$("> spids: [82 90] ) ) } spids: [80] ) ] spids: [80] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(instaweb.port)})] ) left_token: <Left_CommandSub "$("> spids: [94 102] ) } spids: [93] ) ] spids: [93] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:module_path) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(git)} {(config)} {(--get)} {(instaweb.modulepath)})] ) left_token: <Left_CommandSub "$("> spids: [106 114] ) ) } spids: [104] ) ] spids: [104] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:action) op:Equal rhs:{(DQ (browse))} spids:[117])] spids: [117] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:conf) op: Equal rhs: {(DQ ($ VSub_Name "$GIT_DIR") (/gitweb/httpd.conf))} spids: [123] ) ] spids: [123] ) (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$httpd"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd) op: Equal rhs: {(SQ <"lighttpd -f">)} spids: [147] ) ] spids: [147] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$root"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:root) op: Equal rhs: {(SQ <"@@GITWEBDIR@@">)} spids: [166] ) ] spids: [166] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$port"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:port) op:Equal rhs:{(1234)} spids:[185])] spids: [185] ) ] op_id: Op_DAmp ) (FuncDef name: resolve_full_httpd body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Name "$httpd"))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (apache2) (Lit_Other "*")} {(Lit_Other "*") (lighttpd) (Lit_Other "*")} {(Lit_Other "*") (httpd) (Lit_Other "*")} ] action: [ (If arms: [ (if_arm cond: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$httpd"))}) (SimpleCommand words: [{(sane_grep)} {(--)} {(SQ <"-f *$">)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [248] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [251] ) ] ) ] negated: True ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd) op: Equal rhs: {(DQ ($ VSub_Name "$httpd") (" -f"))} spids: [258] ) ] spids: [258] ) ] spids: [-1 255] ) ] spids: [-1 265] ) ] spids: [206 217 268 -1] ) (case_arm pat_list: [{(Lit_Other "*") (plackup) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:full_httpd) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb.psgi))} spids: [281] ) ] spids: [281] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd_only) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name httpd> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(" *")}) spids: [290 294] ) ) } spids: [288] ) ] spids: [288] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [271 274 304 -1] ) (case_arm pat_list: [{(Lit_Other "*") (webrick) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:full_httpd) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/webrick.rb))} spids: [321] ) ] spids: [321] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd_only) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name httpd> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(" *")}) spids: [330 334] ) ) } spids: [328] ) ] spids: [328] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [307 310 344 -1] ) ] spids: [197 203 347] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd_only) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name "$httpd")}) (C {(cut)} {(-f1)} {(-d) (SQ <" ">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [353 368] ) ) } spids: [351] ) ] spids: [351] ) (If arms: [ (if_arm cond: [ (Case to_match: {(DQ ($ VSub_Name "$httpd_only"))} arms: [ (case_arm pat_list: [{(/) (Lit_Other "*")}] action: [(C {(Lit_Other ":")})] spids: [382 384 388 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (SimpleCommand words: [{(which)} {($ VSub_Name "$httpd_only")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [397] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [400] ) ] ) ] spids: [390 391 402 -1] ) ] spids: [374 380 404] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:full_httpd) op: Equal rhs: {($ VSub_Name "$httpd")} spids: [410] ) ] spids: [410] ) ] spids: [-1 407] ) ] else_action: [ (ForEach iter_name: i iter_words: [ {(/usr/local/sbin)} {(/usr/sbin)} {(DQ ($ VSub_Name "$root"))} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb))} ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (C {(test)} {(-x)} {(DQ ($ VSub_Name "$i") (/) ($ VSub_Name "$httpd_only"))} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:full_httpd) op: Equal rhs: {($ VSub_Name "$i") (/) ($ VSub_Name "$httpd")} spids: [472] ) ] spids: [472] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [-1 469] ) ] spids: [-1 481] ) ] spids: [453 484] ) spids: [438 -1] ) (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name "$httpd_only") (" not found. Install ") ($ VSub_Name "$httpd_only") (" or use") ) } {(DQ ("--httpd to specify another httpd daemon."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[490])] ) (C {(exit)} {(1)}) ] spids: [414 512] ) ] spids: [194] ) spids: [189 193] ) (FuncDef name: start_httpd body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-f)} {(DQ ($ VSub_Name "$fqgitdir") (/pid))}) terminator: <Op_Semi ";"> ) ] action: [ (C {(say)} {(DQ ("Instance already running. Restarting..."))}) (C {(stop_httpd)}) ] spids: [-1 537] ) ] spids: [-1 550] ) (C {(resolve_full_httpd)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:conf) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (.conf))} spids: [572] ) ] spids: [572] ) (AndOr children: [(C {(test)} {(-f)} {(DQ ($ VSub_Name "$conf"))}) (C {(configure_httpd)})] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb_config.perl))}) (C {(gitweb_conf)}) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$httpd"))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (mongoose) (Lit_Other "*")} {(Lit_Other "*") (plackup) (Lit_Other "*")} ] action: [ (Sentence child: (C {($ VSub_Name "$full_httpd")} {(DQ ($ VSub_Name "$conf"))}) terminator: <Op_Amp "&"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pid) op: Equal rhs: {($ VSub_Bang "$!")} spids: [654] ) ] spids: [654] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_QMark "$?")} {(KW_Bang "!") (Lit_Other "=")} {(0)}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Could not execute http daemon ") ($ VSub_Name "$httpd") (.))} ) (C {(exit)} {(1)}) ] spids: [-1 671] ) ] spids: [-1 688] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$fqgitdir") (/pid))} spids: [694] ) (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ($ VSub_Name "$pid") ("\n"))} do_expansion: True here_end: EOF was_filled: True spids: [701] ) ] ) ] spids: [627 634 707 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {($ VSub_Name "$full_httpd")} {(DQ ($ VSub_Name "$conf"))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_QMark "$?")} {(KW_Bang "!") (Lit_Other "=")} {(0)}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Could not execute http daemon ") ($ VSub_Name "$httpd") (.))} ) (C {(exit)} {(1)}) ] spids: [-1 733] ) ] spids: [-1 750] ) ] spids: [710 711 753 -1] ) ] spids: [618 624 756] ) ] spids: [522] ) spids: [517 521] ) (FuncDef name: stop_httpd body: (BraceGroup children: [ (AndOr children: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name "$fqgitdir") (/pid))}) (C {(kill)} { (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(DQ ($ VSub_Name "$fqgitdir") (/pid))})] ) left_token: <Left_CommandSub "$("> spids: [782 789] ) } ) ] op_id: Op_DAmp ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$fqgitdir") (/pid))}) ] spids: [766] ) spids: [761 765] ) (FuncDef name: httpd_is_ready body: (BraceGroup children: [ (C {(DQ ($ VSub_Name "$PERL"))} {(-MIO) (Lit_Other ":") (Lit_Other ":") (Socket) (Lit_Other ":") (Lit_Other ":") (INET)} {(-e)} { (DQ ("\n") ("local ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("| = 1; # turn on autoflush\n") ("exit if (IO::Socket::INET->new('127.0.0.1:") ($ VSub_Name "$port") ("'));\n") ("print 'Waiting for ") (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) ($ VSub_Name "$httpd") (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (" to start ..';\n") ("do {\n") ("\tprint '.';\n") ("\tsleep(1);\n") ("} until (IO::Socket::INET->new('127.0.0.1:") ($ VSub_Name "$port") ("'));\n") ("print qq! (done)") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("!;\n") ) } ) ] spids: [809] ) spids: [804 808] ) (While cond: [(C {(test)} {($ VSub_Pound "$#")} {(KW_Bang "!") (Lit_Other "=")} {(0)})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(--stop)} {(stop)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(DQ (stop))} spids: [882] ) ] spids: [882] ) ] spids: [876 879 888 -1] ) (case_arm pat_list: [{(--start)} {(start)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(DQ (start))} spids: [897] ) ] spids: [897] ) ] spids: [891 894 903 -1] ) (case_arm pat_list: [{(--restart)} {(restart)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(DQ (restart))} spids: [912] ) ] spids: [912] ) ] spids: [906 909 918 -1] ) (case_arm pat_list: [{(-l)} {(--local)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:local) op: Equal rhs: {(true)} spids: [927] ) ] spids: [927] ) ] spids: [921 924 931 -1] ) (case_arm pat_list: [{(-d)} {(--httpd)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:httpd) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [943] ) ] spids: [943] ) ] spids: [934 937 949 -1] ) (case_arm pat_list: [{(-b)} {(--browser)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:browser) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [961] ) ] spids: [961] ) ] spids: [952 955 967 -1] ) (case_arm pat_list: [{(-p)} {(--port)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [979] ) ] spids: [979] ) ] spids: [970 973 985 -1] ) (case_arm pat_list: [{(-m)} {(--module-path)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:module_path) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [997] ) ] spids: [997] ) ] spids: [988 991 1003 -1] ) (case_arm pat_list:[{(--)}] spids:[100610071010-1]) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(usage)})] spids: [1013 1014 1020 -1] ) ] spids: [867 873 1023] ) (C {(shift)}) ] spids: [864 1028] ) ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$GIT_DIR") (/gitweb/tmp))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_EXEC_PATH) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(git)} {(--exec-path)})]) left_token: <Left_CommandSub "$("> spids: [1042 1046] ) ) } spids: [1040] ) ] spids: [1040] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_DIR) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir"))} spids: [1049] ) ] spids: [1049] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GITWEB_CONFIG) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb_config.perl))} spids: [1054] ) ] spids: [1054] ) (C {(export)} {(GIT_EXEC_PATH)} {(GIT_DIR)} {(GITWEB_CONFIG)}) (FuncDef name: webrick_conf body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wrapper) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd") (/wrapper.sh))} spids: [1089] ) ] spids: [1089] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$wrapper"))} spids: [1100] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!@SHELL_PATH@\n") ("# we use this shell script wrapper around the real gitweb.cgi since\n") ("# there appears to be no other way to pass arbitrary environment variables\n") ("# into the CGI process\n") ("GIT_EXEC_PATH=") ($ VSub_Name "$GIT_EXEC_PATH") (" GIT_DIR=") ($ VSub_Name "$GIT_DIR") (" GITWEB_CONFIG=") ($ VSub_Name "$GITWEB_CONFIG") ("\n") ("export GIT_EXEC_PATH GIT_DIR GITWEB_CONFIG\n") ("exec ") ($ VSub_Name "$root") ("/gitweb.cgi\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1106] ) ] ) (C {(chmod)} {(Lit_Other "+") (x)} {(DQ ($ VSub_Name "$wrapper"))}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd") (.rb))} spids: [1150] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!/usr/bin/env ruby\n") ("require 'webrick'\n") ("require 'logger'\n") ("options = {\n") (" :Port => ") ($ VSub_Name "$port") (",\n") (" :DocumentRoot => ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (Right_DoubleQuote "\"") (",\n") (" :Logger => Logger.new('") ($ VSub_Name "$fqgitdir") ("/gitweb/error.log'),\n") (" :AccessLog => [\n") (" [ Logger.new('") ($ VSub_Name "$fqgitdir") ("/gitweb/access.log'),\n") (" WEBrick::AccessLog::COMBINED_LOG_FORMAT ]\n") (" ],\n") (" :DirectoryIndex => [") (Right_DoubleQuote "\"") (gitweb.cgi) (Right_DoubleQuote "\"") ("],\n") (" :CGIInterpreter => ") (Right_DoubleQuote "\"") ($ VSub_Name "$wrapper") (Right_DoubleQuote "\"") (",\n") (" :StartCallback => lambda do\n") (" File.open(") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/pid) (Right_DoubleQuote "\"") (", ") (Right_DoubleQuote "\"") (w) (Right_DoubleQuote "\"") (") { |f| f.puts Process.pid }\n") (" end,\n") (" :ServerType => WEBrick::Daemon,\n") ("}\n") ("options[:BindAddress] = '127.0.0.1' if ") (Right_DoubleQuote "\"") ($ VSub_Name "$local") (Right_DoubleQuote "\"") (" == ") (Right_DoubleQuote "\"") (true) (Right_DoubleQuote "\"") ("\n") ("server = WEBrick::HTTPServer.new(options)\n") ("['INT', 'TERM'].each do |signal|\n") (" trap(signal) {server.shutdown}\n") ("end\n") ("server.start\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1158] ) ] ) (C {(chmod)} {(Lit_Other "+") (x)} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd") (.rb))} ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$conf"))}) ] spids: [1074] ) spids: [1069 1073] ) (FuncDef name: lighttpd_conf body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [1259] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("server.document-root = ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (Right_DoubleQuote "\"") ("\n") ("server.port = ") ($ VSub_Name "$port") ("\n") ("server.modules = ( ") (Right_DoubleQuote "\"") (mod_setenv) (Right_DoubleQuote "\"") (", ") (Right_DoubleQuote "\"") (mod_cgi) (Right_DoubleQuote "\"") (" )\n") ("server.indexfiles = ( ") (Right_DoubleQuote "\"") (gitweb.cgi) (Right_DoubleQuote "\"") (" )\n") ("server.pid-file = ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/pid) (Right_DoubleQuote "\"") ("\n") ("server.errorlog = ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (/error.log) (Right_DoubleQuote "\"") ("\n") ("\n") ("# to enable, add ") (Right_DoubleQuote "\"") (mod_access) (Right_DoubleQuote "\"") (", ") (Right_DoubleQuote "\"") (mod_accesslog) (Right_DoubleQuote "\"") (" to server.modules\n") ("# variable above and uncomment this\n") ("#accesslog.filename = ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (/access.log) (Right_DoubleQuote "\"") ("\n") ("\n") ("setenv.add-environment = ( ") (Right_DoubleQuote "\"") (PATH) (Right_DoubleQuote "\"") (" => env.PATH, ") (Right_DoubleQuote "\"") (GITWEB_CONFIG) (Right_DoubleQuote "\"") (" => env.GITWEB_CONFIG )\n") ("\n") ("cgi.assign = ( ") (Right_DoubleQuote "\"") (.cgi) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") (" )\n") ("\n") ("# mimetype mapping\n") ("mimetype.assign = (\n") (" ") (Right_DoubleQuote "\"") (.pdf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/pdf) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.sig) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/pgp-signature) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.spl) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/futuresplash) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.class) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/octet-stream) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.ps) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/postscript) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.torrent) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bittorrent) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.dvi) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-dvi) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.gz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-gzip) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.pac) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-ns-proxy-autoconfig) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.swf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-shockwave-flash) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.tar.gz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tgz) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.tgz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tgz) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.tar) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tar) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.zip) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/zip) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.mp3) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/mpeg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.m3u) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-mpegurl) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.wma) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-ms-wma) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.wax) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-ms-wax) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.ogg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/ogg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.wav) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-wav) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.gif) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/gif) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.jpg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/jpeg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.jpeg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/jpeg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.png) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/png) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.xbm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xbitmap) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.xpm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xpixmap) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.xwd) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xwindowdump) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.css) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/css) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.html) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/html) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.htm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/html) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.js) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/javascript) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.asc) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.c) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.cpp) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.log) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.conf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.text) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.txt) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.dtd) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/xml) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.xml) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/xml) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.mpeg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/mpeg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.mpg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/mpeg) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.mov) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/quicktime) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.qt) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/quicktime) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.avi) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-msvideo) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.asf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-asf) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.asx) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-asf) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.wmv) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-wmv) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.bz2) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.tbz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip-compressed-tar) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (.tar.bz2) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip-compressed-tar) (Right_DoubleQuote "\"") (",\n") (" ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") ("\n") (" )\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1265] ) ] ) (AndOr children: [ (C {(test)} {(x) (DQ ($ VSub_Name "$local"))} {(Lit_Other "=")} {(xtrue)}) (SimpleCommand words: [{(echo)} {(SQ <"server.bind = \"127.0.0.1\"">)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [1833] ) ] ) ] op_id: Op_DAmp ) ] spids: [1254] ) spids: [1249 1253] ) (FuncDef name: apache2_conf body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name "$module_path"))})] action: [ (AndOr children: [ (C {(test)} {(-d)} {(DQ (/usr/lib/httpd/modules))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:module_path) op: Equal rhs: {(DQ (/usr/lib/httpd/modules))} spids: [1875] ) ] spids: [1875] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(-d)} {(DQ (/usr/lib/apache2/modules))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:module_path) op: Equal rhs: {(DQ (/usr/lib/apache2/modules))} spids: [1892] ) ] spids: [1892] ) ] op_id: Op_DAmp ) ] spids: [-1 1861] ) ] spids: [-1 1898] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:bind) op:Equal rhs:{(SQ )} spids:[1901])] spids: [1901] ) (AndOr children: [ (C {(test)} {(x) (DQ ($ VSub_Name "$local"))} {(Lit_Other "=")} {(xtrue)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bind) op: Equal rhs: {(SQ <"127.0.0.1:">)} spids: [1917] ) ] spids: [1917] ) ] op_id: Op_DAmp ) (SimpleCommand words: [{(echo)} {(SQ <"text/css css">)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$fqgitdir") (/mime.types))} spids: [1929] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [1939] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("ServerName ") (Right_DoubleQuote "\"") (git-instaweb) (Right_DoubleQuote "\"") ("\n") ("ServerRoot ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (Right_DoubleQuote "\"") ("\n") ("DocumentRoot ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (Right_DoubleQuote "\"") ("\n") ("ErrorLog ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (/error.log) (Right_DoubleQuote "\"") ("\n") ("CustomLog ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (/access.log) (Right_DoubleQuote "\"") (" combined\n") ("PidFile ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/pid) (Right_DoubleQuote "\"") ("\n") ("Listen ") ($ VSub_Name "$bind") ($ VSub_Name "$port") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1945] ) ] ) (ForEach iter_name: mod iter_words: [{(mpm_event)} {(mpm_prefork)} {(mpm_worker)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (C {(test)} {(-e)} {($ VSub_Name "$module_path") (/mod_) (${ VSub_Name mod) (.so)} ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("LoadModule ") (${ VSub_Name mod) ("_module "))} {(DQ ($ VSub_Name "$module_path") (/mod_) (${ VSub_Name mod) (.so))} ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2045] ) ] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 2021] ) ] spids: [-1 2059] ) ] spids: [2004 2062] ) spids: [1996 -1] ) (ForEach iter_name: mod iter_words: [{(mime)} {(dir)} {(env)} {(log_config)} {(authz_core)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (C {(test)} {(-e)} {($ VSub_Name "$module_path") (/mod_) (${ VSub_Name mod) (.so)} ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("LoadModule ") (${ VSub_Name mod) ("_module "))} {(DQ ($ VSub_Name "$module_path") (/mod_) (${ VSub_Name mod) (.so))} ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2123] ) ] ) ] spids: [-1 2099] ) ] spids: [-1 2130] ) ] spids: [2082 2133] ) spids: [2070 -1] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2138] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("TypesConfig ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/mime.types) (Right_DoubleQuote "\"") ("\n") ("DirectoryIndex gitweb.cgi\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [2144] ) ] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name "$module_path") (/mod_perl.so))}) (SimpleCommand words: [ {(sane_grep)} {(SQ <MOD_PERL>)} {(DQ ($ VSub_Name "$root") (/gitweb.cgi))} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [2189] ) ] ) ] op_id: Op_DAmp ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2202] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("LoadModule perl_module ") ($ VSub_Name "$module_path") ("/mod_perl.so\n") ("PerlPassEnv GIT_DIR\n") ("PerlPassEnv GIT_EXEC_PATH\n") ("PerlPassEnv GITWEB_CONFIG\n") ("<Location /gitweb.cgi>\n") ("\tSetHandler perl-script\n") ("\tPerlResponseHandler ModPerl::Registry\n") ("\tPerlOptions +ParseHeaders\n") ("\tOptions +ExecCGI\n") ("</Location>\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [2208] ) ] ) ] spids: [-1 2193] ) ] else_action: [ (C {(resolve_full_httpd)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list_mods) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$full_httpd"))}) (C {(sed)} {(SQ <"s/-f$/-l/">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2235 2249] ) } spids: [2234] ) ] spids: [2234] ) (AndOr children: [ (Pipeline children: [ (C {($ VSub_Name "$list_mods")}) (SimpleCommand words: [{(sane_grep)} {(SQ <"mod_cgi\\.c">)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [2262] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [2265] ) ] ) ] negated: False ) (If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ ($ VSub_Name "$module_path") (/mod_cgi.so))})] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("LoadModule cgi_module ") ($ VSub_Name "$module_path") (/mod_cgi.so) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2295] ) ] ) ] spids: [-1 2284] ) ] else_action: [ (AndOr children: [ (Pipeline children: [ (C {($ VSub_Name "$list_mods")}) (SimpleCommand words: [{(grep)} {(SQ <"mod_cgid\\.c">)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [2315] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [2318] ) ] ) ] negated: False ) (If arms: [ (if_arm cond: [ (C {(test)} {(-f)} {(DQ ($ VSub_Name "$module_path") (/mod_cgid.so))}) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("LoadModule cgid_module ") ($ VSub_Name "$module_path") (/mod_cgid.so) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2350] ) ] ) ] spids: [-1 2337] ) ] else_action: [ (C {(echo)} {(DQ ("You have no CGI support!"))}) (C {(exit)} {(2)}) ] spids: [2357 2372] ) ] op_id: Op_DPipe ) (SimpleCommand words: [{(echo)} {(DQ ("ScriptSock logs/gitweb.sock"))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2381] ) ] ) ] spids: [2302 2388] ) ] op_id: Op_DPipe ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2393] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("PassEnv GIT_DIR\n") ("PassEnv GIT_EXEC_PATH\n") ("PassEnv GITWEB_CONFIG\n") ("AddHandler cgi-script .cgi\n") ("<Location /gitweb.cgi>\n") ("\tOptions +ExecCGI\n") ("</Location>\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [2399] ) ] ) ] spids: [2224 2410] ) ] spids: [1847] ) spids: [1842 1846] ) (FuncDef name: mongoose_conf body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$conf"))} spids: [2424] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("# Mongoose web server configuration file.\n") ("# Lines starting with '#' and empty lines are ignored.\n") ("# For detailed description of every option, visit\n") ("# http://code.google.com/p/mongoose/wiki/MongooseManual\n") ("\n") ("root\t\t") ($ VSub_Name "$root") ("\n") ("ports\t\t") ($ VSub_Name "$port") ("\n") ("index_files\tgitweb.cgi\n") ("#ssl_cert\t") ($ VSub_Name "$fqgitdir") ("/gitweb/ssl_cert.pem\n") ("error_log\t") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") ("/error.log\n") ("access_log\t") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") ("/access.log\n") ("\n") ("#cgi setup\n") ("cgi_env\t\tPATH=") ($ VSub_Name "$PATH") (",GIT_DIR=") ($ VSub_Name "$GIT_DIR") (",GIT_EXEC_PATH=") ($ VSub_Name "$GIT_EXEC_PATH") (",GITWEB_CONFIG=") ($ VSub_Name "$GITWEB_CONFIG") ("\n") ("cgi_interp\t") ($ VSub_Name "$PERL") ("\n") ("cgi_ext\t\tcgi,pl\n") ("\n") ("# mimetype mapping\n") ( "mime_types\t.gz=application/x-gzip,.tar.gz=application/x-tgz,.tgz=application/x-tgz,.tar=application/x-tar,.zip=application/zip,.gif=image/gif,.jpg=image/jpeg,.jpeg=image/jpeg,.png=image/png,.css=text/css,.html=text/html,.htm=text/html,.js=text/javascript,.c=text/plain,.cpp=text/plain,.log=text/plain,.conf=text/plain,.text=text/plain,.txt=text/plain,.dtd=text/xml,.bz2=application/x-bzip,.tbz=application/x-bzip-compressed-tar,.tar.bz2=application/x-bzip-compressed-tar\n" ) ) } do_expansion: True here_end: EOF was_filled: True spids: [2430] ) ] ) ] spids: [2419] ) spids: [2415 2418] ) (FuncDef name: plackup_conf body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb.psgi))} spids: [2497] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!") ($ VSub_Name "$PERL") ("\n") ("\n") ("# gitweb - simple web interface to track changes in git repositories\n") ("# PSGI wrapper and server starter (see http://plackperl.org)\n") ("\n") ("use strict;\n") ("\n") ("use IO::Handle;\n") ("use Plack::MIME;\n") ("use Plack::Builder;\n") ("use Plack::App::WrapCGI;\n") ( "use CGI::Emulate::PSGI 0.07; # minimum version required to work with gitweb\n" ) ("\n") ("# mimetype mapping (from lighttpd_conf)\n") ("Plack::MIME->add_type(\n") ("\t") (Right_DoubleQuote "\"") (.pdf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/pdf) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.sig) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/pgp-signature) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.spl) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/futuresplash) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.class) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/octet-stream) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.ps) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/postscript) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.torrent) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bittorrent) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.dvi) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-dvi) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.gz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-gzip) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.pac) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-ns-proxy-autoconfig) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.swf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-shockwave-flash) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.tar.gz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tgz) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.tgz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tgz) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.tar) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-tar) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.zip) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/zip) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.mp3) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/mpeg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.m3u) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-mpegurl) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.wma) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-ms-wma) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.wax) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-ms-wax) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.ogg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/ogg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.wav) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (audio/x-wav) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.gif) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/gif) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.jpg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/jpeg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.jpeg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/jpeg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.png) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/png) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.xbm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xbitmap) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.xpm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xpixmap) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.xwd) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (image/x-xwindowdump) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.css) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/css) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.html) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/html) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.htm) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/html) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.js) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/javascript) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.asc) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.c) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.cpp) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.log) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.conf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.text) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.txt) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.dtd) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/xml) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.xml) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/xml) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.mpeg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/mpeg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.mpg) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/mpeg) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.mov) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/quicktime) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.qt) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/quicktime) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.avi) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-msvideo) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.asf) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-asf) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.asx) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-asf) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.wmv) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (video/x-ms-wmv) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.bz2) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.tbz) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip-compressed-tar) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (.tar.bz2) (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (application/x-bzip-compressed-tar) (Right_DoubleQuote "\"") (",\n") ("\t") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") (" => ") (Right_DoubleQuote "\"") (text/plain) (Right_DoubleQuote "\"") ("\n") (");\n") ("\n") ("my ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app = builder {\n") ("\t# to be able to override ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{__WARN__} to log build time warnings\n") ("\tuse CGI::Carp; # it sets ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{__WARN__} itself\n") ("\n") ("\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("logdir = ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (Right_DoubleQuote "\"") (";\n") ("\topen my ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("access_log_fh, '>>', ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (logdir/access.log) (Right_DoubleQuote "\"") ("\n") ("\t\tor die ") (Right_DoubleQuote "\"") ("Couldn't open access log '") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("logdir/access.log': ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("!") (Right_DoubleQuote "\"") (";\n") ("\topen my ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("error_log_fh, '>>', ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (logdir/error.log) (Right_DoubleQuote "\"") ("\n") ("\t\tor die ") (Right_DoubleQuote "\"") ("Couldn't open error log '") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("logdir/error.log': ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("!") (Right_DoubleQuote "\"") (";\n") ("\n") ("\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("access_log_fh->autoflush(1);\n") ("\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("error_log_fh->autoflush(1);\n") ("\n") ("\t# redirect build time warnings to error.log\n") ("\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{'__WARN__'} = sub {\n") ("\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("msg = shift;\n") ("\t\t# timestamp warning like in CGI::Carp::warn\n") ("\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("stamp = CGI::Carp::stamp();\n") ("\t\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("msg =~ s/^/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("stamp/gm;\n") ("\t\tprint ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("error_log_fh ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("msg;\n") ("\t};\n") ("\n") ("\t# write errors to error.log, access to access.log\n") ("\tenable 'AccessLog',\n") ("\t\tformat => ") (Right_DoubleQuote "\"") (combined) (Right_DoubleQuote "\"") (",\n") ("\t\tlogger => sub { print ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("access_log_fh @_; };\n") ("\tenable sub {\n") ("\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app = shift;\n") ("\t\tsub {\n") ("\t\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("env = shift;\n") ("\t\t\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("env->{'psgi.errors'} = ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("error_log_fh;\n") ("\t\t\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app->(") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("env);\n") ("\t\t}\n") ("\t};\n") ("\t# gitweb currently doesn't work with ") ($ VSub_Name "$SIG") ("{CHLD} set to 'IGNORE',\n") ("\t# because it uses 'close ") ($ VSub_Name "$fd") (" or die...' on piped filehandle ") ($ VSub_Name "$fh") ("\n") ("\t# (which causes the parent process to wait for child to finish).\n") ("\tenable_if { ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{'CHLD'} eq 'IGNORE' } sub {\n") ("\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app = shift;\n") ("\t\tsub {\n") ("\t\t\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("env = shift;\n") ("\t\t\tlocal ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{'CHLD'} = 'DEFAULT';\n") ("\t\t\tlocal ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SIG{'CLD'} = 'DEFAULT';\n") ("\t\t\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app->(") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("env);\n") ("\t\t}\n") ("\t};\n") ("\t# serve static files, i.e. stylesheet, images, script\n") ("\tenable 'Static',\n") ("\t\tpath => sub { m!") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) ("(js|css|png)") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("! && s!^/gitweb/!! },\n") ("\t\troot => ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (/) (Right_DoubleQuote "\"") (",\n") ("\t\tencoding => 'utf-8'; # encoding for 'text/plain' files\n") ("\t# convert CGI application to PSGI app\n") ("\tPlack::App::WrapCGI->new(script => ") (Right_DoubleQuote "\"") ($ VSub_Name "$root") (/gitweb.cgi) (Right_DoubleQuote "\"") (")->to_app;\n") ("};\n") ("\n") ("# make it runnable as standalone app,\n") ("# like it would be run via 'plackup' utility\n") ("if (caller) {\n") ("\treturn ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app;\n") ("} else {\n") ("\trequire Plack::Runner;\n") ("\n") ("\tmy ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("runner = Plack::Runner->new();\n") ("\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("runner->parse_options(qw(--env deployment --port ") ($ VSub_Name "$port") ("),\n") ("\t\t\t\t") (Right_DoubleQuote "\"") ($ VSub_Name "$local") (Right_DoubleQuote "\"") (" ? qw(--host 127.0.0.1) : ());\n") ("\t") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("runner->run(") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("app);\n") ("}\n") ("__END__\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [2504] ) ] ) (C {(chmod)} {(a) (Lit_Other "+") (x)} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb.psgi))}) (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$conf"))}) ] spids: [2484] ) spids: [2479 2483] ) (FuncDef name: gitweb_conf body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/gitweb_config.perl))} spids: [3229] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!@@PERL@@\n") ("our ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("projectroot = ") (Right_DoubleQuote "\"") (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name "$fqgitdir"))})] ) left_token: <Left_CommandSub "$("> spids: [3244 3250] ) (Right_DoubleQuote "\"") (";\n") ("our ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("git_temp = ") (Right_DoubleQuote "\"") ($ VSub_Name "$fqgitdir") (/gitweb/tmp) (Right_DoubleQuote "\"") (";\n") ("our ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("projects_list = ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("projectroot;\n") ("\n") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("feature{'remote_heads'}{'default'} = [1];\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3236] ) ] ) ] spids: [3224] ) spids: [3220 3223] ) (FuncDef name: configure_httpd body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Name "$httpd"))} arms: [ (case_arm pat_list: [{(Lit_Other "*") (lighttpd) (Lit_Other "*")}] action: [(C {(lighttpd_conf)})] spids: [3288 3291 3297 -1] ) (case_arm pat_list: [ {(Lit_Other "*") (apache2) (Lit_Other "*")} {(Lit_Other "*") (httpd) (Lit_Other "*")} ] action: [(C {(apache2_conf)})] spids: [3300 3307 3313 -1] ) (case_arm pat_list: [{(webrick)}] action: [(C {(webrick_conf)})] spids: [3316 3317 3323 -1] ) (case_arm pat_list: [{(Lit_Other "*") (mongoose) (Lit_Other "*")}] action: [(C {(mongoose_conf)})] spids: [3326 3329 3335 -1] ) (case_arm pat_list: [{(Lit_Other "*") (plackup) (Lit_Other "*")}] action: [(C {(plackup_conf)})] spids: [3338 3341 3347 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Unknown httpd specified: ") ($ VSub_Name "$httpd"))}) (C {(exit)} {(1)}) ] spids: [3350 3351 3367 -1] ) ] spids: [3279 3285 3370] ) ] spids: [3276] ) spids: [3272 3275] ) (Case to_match: {(DQ ($ VSub_Name "$action"))} arms: [ (case_arm pat_list: [{(stop)}] action: [(C {(stop_httpd)}) (C {(exit)} {(0)})] spids: [3383 3384 3395 -1] ) (case_arm pat_list: [{(start)}] action: [(C {(start_httpd)}) (C {(exit)} {(0)})] spids: [3397 3398 3409 -1] ) (case_arm pat_list: [{(restart)}] action: [(C {(stop_httpd)}) (C {(start_httpd)}) (C {(exit)} {(0)})] spids: [3411 3412 3426 -1] ) ] spids: [3375 3381 3428] ) (C {(gitweb_conf)}) (C {(resolve_full_httpd)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:conf) op: Equal rhs: {(DQ ($ VSub_Name "$fqgitdir") (/gitweb/) ($ VSub_Name "$httpd_only") (.conf))} spids: [3446] ) ] spids: [3446] ) (C {(configure_httpd)}) (C {(start_httpd)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(http) (Lit_Other ":") (//127.0.0.1) (Lit_Other ":") ($ VSub_Name "$port")} spids: [3460] ) ] spids: [3460] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_Name "$browser"))}) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (C {(httpd_is_ready)}) (AndOr children: [ (C {(git)} {(web--browse)} {(-b)} {(DQ ($ VSub_Name "$browser"))} {($ VSub_Name "$url")} ) (C {(echo)} {($ VSub_Name "$url")}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [-1 3479] ) ] else_action: [ (AndOr children: [ (C {(httpd_is_ready)}) (AndOr children: [ (C {(git)} {(web--browse)} {(-c)} {(DQ (instaweb.browser))} {($ VSub_Name "$url")}) (C {(echo)} {($ VSub_Name "$url")}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [3504 3529] ) ] )