]> granicus.if.org Git - apache/commitdiff
Start from svn httpd/httpd/win32-msi/trunk/InstallConf22.awk
authorWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 21 Dec 2007 08:42:54 +0000 (08:42 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 21 Dec 2007 08:42:54 +0000 (08:42 +0000)
to use a single script for build time and installer conf rewrite.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@606136 13f79535-47bb-0310-9956-ffa450edef68

build/installwinconf.awk [new file with mode: 0644]

diff --git a/build/installwinconf.awk b/build/installwinconf.awk
new file mode 100644 (file)
index 0000000..0839989
--- /dev/null
@@ -0,0 +1,131 @@
+#
+# InstallConf.awk Apache HTTP 2.2 script to rewrite the @@ServerRoot@@ 
+# tags in httpd-win.conf to httpd.default.conf - then duplicate the
+# conf files if they don't already exist.
+#
+# Note that we -don't- want the ARGV file list, so no additional {} blocks
+# are coded.  Use explicit args (more reliable on Win32) and use the fact
+# that ARGV[] params are -not- '\' escaped to process the C:\Foo\Bar Win32
+# path format.  Note that awk var=path would not succeed, since it -does-
+# escape backslashes in the assignment.  Note also, a trailing space is
+# required for paths, or the trailing quote following the backslash is 
+# escaped, rather than parsed.
+#
+BEGIN { 
+    domainname = ARGV[1];
+    servername = ARGV[2];
+    serveradmin = ARGV[3];
+    serverport = ARGV[4];
+    serversslport = ARGV[5];
+    serverroot = ARGV[6];
+
+    delete ARGV[6];
+    delete ARGV[5];
+    delete ARGV[4];
+    delete ARGV[3];
+    delete ARGV[2];
+    delete ARGV[1];
+
+    gsub( /\\/, "/", serverroot );
+    gsub( /[ \/]+$/, "", serverroot );
+    tstfl = serverroot "/logs/install.log"
+    confroot = serverroot "/conf/";
+    confdefault = confroot "default/";
+
+    print "Installing Apache HTTP 2.0 server with" >tstfl;
+    print " DomainName =    " domainname >tstfl;
+    print " ServerName =    " servername >tstfl;
+    print " ServerAdmin =   " serveradmin >tstfl;
+    print " ServerPort =    " serverport >tstfl;
+    print " ServerSslPort = " serverport >tstfl;
+    print " ServerRoot =    " serverroot >tstfl;
+
+    filelist["httpd.conf"] = "httpd-win.conf";
+    filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in";
+    filelist["httpd-dav.conf"] = "httpd-dav.conf.in";
+    filelist["httpd-default.conf"] = "httpd-default.conf.in";
+    filelist["httpd-info.conf"] = "httpd-info.conf.in";
+    filelist["httpd-languages.conf"] = "httpd-languages.conf.in";
+    filelist["httpd-manual.conf"] = "httpd-manual.conf.in";
+    filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in";
+    filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in";
+    filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in";
+    filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in";
+    filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in";
+
+    for ( conffile in filelist ) {
+      srcfl = confdefault filelist[conffile];
+      dstfl = confdefault conffile;
+      while ( ( getline < srcfl ) > 0 ) {
+       gsub( /SSLMutex  file:@exp_runtimedir@\/ssl_mutex/, "SSLMutex default" );
+       gsub( /@@ServerRoot@@/,   serverroot );
+       gsub( /@exp_cgidir@/,     serverroot "/cgi-bin" );
+       gsub( /@exp_sysconfdir@/, serverroot "/conf" );
+       gsub( /@exp_errordir@/,   serverroot "/error" );
+       gsub( /@exp_htdocsdir@/,  serverroot "/htdocs" );
+       gsub( /@exp_iconsdir@/,   serverroot "/icons" );
+       gsub( /@exp_logfiledir@/, serverroot "/logs" );
+       gsub( /@exp_runtimedir@/, serverroot "/logs" );
+       gsub( /@exp_manualdir@/,  serverroot "/manual" );
+       gsub( /@rel_runtimedir@/, "logs" );
+       gsub( /@rel_logfiledir@/, "logs" );
+       gsub( /\/home\/\*\/public_html/, "\"C:/Documents and Settings/*/My Documents/My Website\"" );
+       gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
+        gsub( /www.example.com/,  servername );
+        gsub( /@@ServerAdmin@@/,  serveradmin );
+        gsub( /you@example.com/,  serveradmin );
+       gsub( /@@ServerName@@/,   servername );
+        gsub( /www.example.com/,  servername );
+        gsub( /@@ServerAdmin@@/,  serveradmin );
+        gsub( /you@example.com/,  serveradmin );
+        gsub( /@@DomainName@@/,   domainname );
+        gsub( /example.com/,      domainname );
+        gsub( /@@Port@@/,         serverport );
+       gsub( /443/,              serversslport );
+        print $0 > dstfl;
+      }
+      close(srcfl);
+
+      if ( close(dstfl) >= 0 ) {
+        print "Rewrote " srcfl "\n to " dstfl > tstfl;
+        gsub(/\//, "\\", srcfl);
+        if (system("del \"" srcfl "\"")) {
+          print "Failed to remove " srcfl > tstfl;
+        } else {
+          print "Successfully removed " srcfl > tstfl;
+        }
+      } else {
+        print "Failed to rewrite " srcfl "\n to " dstfl > tstfl;
+      }
+      filelist[conffile] = "extra/";
+    }
+
+    filelist["httpd.conf"] = "";
+    filelist["charset.conv"] = "";
+    filelist["magic"] = "";
+    filelist["mime.types"] = "";
+
+    for ( conffile in filelist ) {
+      srcfl = confdefault conffile;
+      dstfl = confroot filelist[conffile] conffile;
+      if ( ( getline < dstfl ) < 0 ) {
+       while ( ( getline < srcfl ) > 0 ) {
+         print $0 > dstfl;
+       }
+        print "Duplicated " srcfl "\n to " dstfl > tstfl;
+      } else {
+       print "Existing file " dstfl " preserved" > tstfl;
+      }
+      close(srcfl);
+      close(dstfl);
+    }
+
+    srcfl = confdefault "InstallConf22.awk";
+    gsub(/\//, "\\", srcfl);
+    if (system("del \"" srcfl "\"")) {
+        print "Failed to remove " srcfl > tstfl;
+    } else {
+        print "Successfully removed " srcfl > tstfl;
+    }
+    close(tstfl);
+}
\ No newline at end of file