home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / apache_2.2.8-win32-x86-no_ssl.msi / Data1.cab / installwinconf.awk < prev    next >
Text File  |  2007-12-28  |  11KB  |  237 lines

  1. #
  2. # InstallConf.awk Apache HTTP 2.2 script to rewrite the @@ServerRoot@@ 
  3. # tags in httpd.conf.in to original\httpd.conf - then duplicate the
  4. # conf files to the 'live' configuration if they don't already exist.
  5. #
  6. # Note that we -don't- want the ARGV file list, so no additional {} blocks
  7. # are coded.  Use explicit args (more reliable on Win32) and use the fact
  8. # that ARGV[] params are -not- '\' escaped to process the C:\Foo\Bar Win32
  9. # path format.  Note that awk var=path would not succeed, since it -does-
  10. # escape backslashes in the assignment.  Note also, a trailing space is
  11. # required for paths, or the trailing quote following the backslash is 
  12. # escaped, rather than parsed.
  13. #
  14. BEGIN { 
  15.     domainname = ARGV[1];
  16.     servername = ARGV[2];
  17.     serveradmin = ARGV[3];
  18.     serverport = ARGV[4];
  19.     serversslport = ARGV[5];
  20.     serverroot = ARGV[6];
  21.     sourceroot = ARGV[7];
  22.  
  23.     delete ARGV[7];
  24.     delete ARGV[6];
  25.     delete ARGV[5];
  26.     delete ARGV[4];
  27.     delete ARGV[3];
  28.     delete ARGV[2];
  29.     delete ARGV[1];
  30.  
  31.     gsub( /\\/, "/", serverroot );
  32.     gsub( /[ \/]+$/, "", serverroot );
  33.     tstfl = serverroot "/logs/install.log"
  34.     confroot = serverroot "/conf/";
  35.     confdefault = confroot "original/";
  36.  
  37.     if ( sourceroot != "docs/conf/" ) {
  38.         sourceroot = serverroot "/" sourceroot;
  39.     }
  40.  
  41.     usertree = ENVIRON["USERPROFILE"]
  42.     if ( usertree > "" ) {
  43.         gsub( /\\/, "/", usertree );
  44.         gsub( /\/[^\/]+$/, "", usertree );
  45.     } else {
  46.         usertree = "C:/Documents and Settings";
  47.     }
  48.  
  49.     print "Installing Apache HTTP 2.0 server with" >tstfl;
  50.     print " DomainName =    " domainname >tstfl;
  51.     print " ServerName =    " servername >tstfl;
  52.     print " ServerAdmin =   " serveradmin >tstfl;
  53.     print " ServerPort =    " serverport >tstfl;
  54.     print " ServerSslPort = " serverport >tstfl;
  55.     print " ServerRoot =    " serverroot >tstfl;
  56.  
  57.     filelist["httpd.conf"] = "httpd.conf.in";
  58.     filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in";
  59.     filelist["httpd-dav.conf"] = "httpd-dav.conf.in";
  60.     filelist["httpd-default.conf"] = "httpd-default.conf.in";
  61.     filelist["httpd-info.conf"] = "httpd-info.conf.in";
  62.     filelist["httpd-languages.conf"] = "httpd-languages.conf.in";
  63.     filelist["httpd-manual.conf"] = "httpd-manual.conf.in";
  64.     filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in";
  65.     filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in";
  66.     filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in";
  67.     filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in";
  68.     filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in";
  69.  
  70.     for ( conffile in filelist ) {
  71.  
  72.       if ( conffile == "httpd.conf" ) {
  73.         srcfl = sourceroot filelist[conffile];
  74.         dstfl = confdefault conffile;
  75.     bswarning = 1;
  76.       } else {
  77.         srcfl = sourceroot "extra/" filelist[conffile];
  78.         dstfl = confdefault "extra/" conffile;
  79.         bswarning = 0;
  80.       }
  81.  
  82.       while ( ( getline < srcfl ) > 0 ) {
  83.  
  84.     if ( bswarning && /^$/ ) {
  85.       print "#" > dstfl;
  86.       print "# NOTE: Where filenames are specified, you must use forward slashes" > dstfl;
  87.       print "# instead of backslashes (e.g., \"c:/apache\" instead of \"c:\\apache\")." > dstfl;
  88.       print "# If a drive letter is omitted, the drive on which Apache.exe is located" > dstfl;
  89.       print "# will be used by default.  It is recommended that you always supply" > dstfl;
  90.       print "# an explicit drive letter in absolute paths to avoid confusion." > dstfl;
  91.       bswarning = 0;
  92.         }
  93.     if ( /@@LoadModule@@/ ) {
  94.       print "LoadModule actions_module modules/mod_actions.so" > dstfl;
  95.       print "LoadModule alias_module modules/mod_alias.so" > dstfl;
  96.       print "LoadModule asis_module modules/mod_asis.so" > dstfl;
  97.       print "LoadModule auth_basic_module modules/mod_auth_basic.so" > dstfl;
  98.       print "#LoadModule auth_digest_module modules/mod_auth_digest.so" > dstfl;
  99.       print "#LoadModule authn_alias_module modules/mod_authn_alias.so" > dstfl;
  100.       print "#LoadModule authn_anon_module modules/mod_authn_anon.so" > dstfl;
  101.       print "#LoadModule authn_dbd_module modules/mod_authn_dbd.so" > dstfl;
  102.       print "#LoadModule authn_dbm_module modules/mod_authn_dbm.so" > dstfl;
  103.       print "LoadModule authn_default_module modules/mod_authn_default.so" > dstfl;
  104.       print "LoadModule authn_file_module modules/mod_authn_file.so" > dstfl;
  105.       print "#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > dstfl;
  106.       print "#LoadModule authz_dbm_module modules/mod_authz_dbm.so" > dstfl;
  107.       print "LoadModule authz_default_module modules/mod_authz_default.so" > dstfl;
  108.       print "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > dstfl;
  109.       print "LoadModule authz_host_module modules/mod_authz_host.so" > dstfl;
  110.       print "#LoadModule authz_owner_module modules/mod_authz_owner.so" > dstfl;
  111.       print "LoadModule authz_user_module modules/mod_authz_user.so" > dstfl;
  112.       print "LoadModule autoindex_module modules/mod_autoindex.so" > dstfl;
  113.       print "#LoadModule cache_module modules/mod_cache.so" > dstfl;
  114.       print "#LoadModule cern_meta_module modules/mod_cern_meta.so" > dstfl;
  115.       print "LoadModule cgi_module modules/mod_cgi.so" > dstfl;
  116.       print "#LoadModule charset_lite_module modules/mod_charset_lite.so" > dstfl;
  117.       print "#LoadModule dav_module modules/mod_dav.so" > dstfl;
  118.       print "#LoadModule dav_fs_module modules/mod_dav_fs.so" > dstfl;
  119.       print "#LoadModule dav_lock_module modules/mod_dav_lock.so" > dstfl;
  120.       print "#LoadModule dbd_module modules/mod_dbd.so" > dstfl;
  121.       print "#LoadModule deflate_module modules/mod_deflate.so" > dstfl;
  122.       print "LoadModule dir_module modules/mod_dir.so" > dstfl;
  123.       print "#LoadModule disk_cache_module modules/mod_disk_cache.so" > dstfl;
  124.       print "#LoadModule dumpio_module modules/mod_dumpio.so" > dstfl;
  125.       print "LoadModule env_module modules/mod_env.so" > dstfl;
  126.       print "#LoadModule expires_module modules/mod_expires.so" > dstfl;
  127.       print "#LoadModule ext_filter_module modules/mod_ext_filter.so" > dstfl;
  128.       print "#LoadModule file_cache_module modules/mod_file_cache.so" > dstfl;
  129.       print "#LoadModule filter_module modules/mod_filter.so" > dstfl;
  130.       print "#LoadModule headers_module modules/mod_headers.so" > dstfl;
  131.       print "#LoadModule ident_module modules/mod_ident.so" > dstfl;
  132.       print "#LoadModule imagemap_module modules/mod_imagemap.so" > dstfl;
  133.       print "LoadModule include_module modules/mod_include.so" > dstfl;
  134.       print "#LoadModule info_module modules/mod_info.so" > dstfl;
  135.       print "LoadModule isapi_module modules/mod_isapi.so" > dstfl;
  136.       print "#LoadModule ldap_module modules/mod_ldap.so" > dstfl;
  137.       print "#LoadModule logio_module modules/mod_logio.so" > dstfl;
  138.       print "LoadModule log_config_module modules/mod_log_config.so" > dstfl;
  139.       print "#LoadModule log_forensic_module modules/mod_log_forensic.so" > dstfl;
  140.       print "#LoadModule mem_cache_module modules/mod_mem_cache.so" > dstfl;
  141.       print "LoadModule mime_module modules/mod_mime.so" > dstfl;
  142.       print "#LoadModule mime_magic_module modules/mod_mime_magic.so" > dstfl;
  143.       print "LoadModule negotiation_module modules/mod_negotiation.so" > dstfl;
  144.       print "#LoadModule proxy_module modules/mod_proxy.so" > dstfl;
  145.       print "#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so" > dstfl;
  146.       print "#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so" > dstfl;
  147.       print "#LoadModule proxy_connect_module modules/mod_proxy_connect.so" > dstfl;
  148.       print "#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so" > dstfl;
  149.       print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl;
  150.       print "#LoadModule rewrite_module modules/mod_rewrite.so" > dstfl;
  151.       print "LoadModule setenvif_module modules/mod_setenvif.so" > dstfl;
  152.       print "#LoadModule speling_module modules/mod_speling.so" > dstfl;
  153.       print "#LoadModule ssl_module modules/mod_ssl.so" > dstfl;
  154.       print "#LoadModule status_module modules/mod_status.so" > dstfl;
  155.       print "#LoadModule substitute_module modules/mod_substitute.so" > dstfl;
  156.       print "#LoadModule unique_id_module modules/mod_unique_id.so" > dstfl;
  157.       print "#LoadModule userdir_module modules/mod_userdir.so" > dstfl;
  158.       print "#LoadModule usertrack_module modules/mod_usertrack.so" > dstfl;
  159.       print "#LoadModule version_module modules/mod_version.so" > dstfl;
  160.       print "#LoadModule vhost_alias_module modules/mod_vhost_alias.so" > dstfl;
  161.       continue;
  162.     }
  163.     gsub( /^SSLMutex.*/, "SSLMutex default" );
  164.     gsub( /@@ServerRoot@@/,   serverroot );
  165.     gsub( /@exp_cgidir@/,     serverroot "/cgi-bin" );
  166.     gsub( /@exp_sysconfdir@/, serverroot "/conf" );
  167.     gsub( /@exp_errordir@/,   serverroot "/error" );
  168.     gsub( /@exp_htdocsdir@/,  serverroot "/htdocs" );
  169.     gsub( /@exp_iconsdir@/,   serverroot "/icons" );
  170.     gsub( /@exp_manualdir@/,  serverroot "/manual" );
  171.     gsub( /@exp_runtimedir@/, serverroot "/logs" );
  172.     if ( gsub( /@exp_logfiledir@/, serverroot "/logs" ) ||
  173.          gsub( /@rel_logfiledir@/, "logs" ) ) {
  174.       gsub( /_log"/, ".log\"" )
  175.     }
  176.     gsub( /@rel_runtimedir@/, "logs" );
  177.     gsub( /@rel_sysconfdir@/, "conf" );
  178.     gsub( /\/home\/\*\/public_html/, \
  179.               usertree "/*/My Documents/My Website" );
  180.     gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
  181.     gsub( /@@ServerName@@|www.example.com/,  servername );
  182.         gsub( /@@ServerAdmin@@|you@example.com/, serveradmin );
  183.         gsub( /@@DomainName@@|example.com/,      domainname );
  184.         gsub( /@@Port@@/,                        serverport );
  185.     gsub( /@@SSLPort@@|443/,                 serversslport );
  186.         print $0 > dstfl;
  187.       }
  188.       close(srcfl);
  189.  
  190.       if ( close(dstfl) >= 0 ) {
  191.         print "Rewrote " srcfl "\n to " dstfl > tstfl;
  192.         gsub(/\//, "\\", srcfl);
  193.         if ( sourceroot != "docs/conf/" ) {
  194.           if (system("del \"" srcfl "\"")) {
  195.             print "Failed to remove " srcfl > tstfl;
  196.           } else {
  197.             print "Successfully removed " srcfl > tstfl;
  198.           }
  199.         }
  200.       } else {
  201.         print "Failed to rewrite " srcfl "\n to " dstfl > tstfl;
  202.       }
  203.       filelist[conffile] = "extra/";
  204.     }
  205.  
  206.     filelist["httpd.conf"] = "";
  207.     filelist["charset.conv"] = "";
  208.     filelist["magic"] = "";
  209.     filelist["mime.types"] = "";
  210.  
  211.     for ( conffile in filelist ) {
  212.       srcfl = confdefault filelist[conffile] conffile;
  213.       dstfl = confroot filelist[conffile] conffile;
  214.       if ( ( getline < dstfl ) < 0 ) {
  215.     while ( ( getline < srcfl ) > 0 ) {
  216.       print $0 > dstfl;
  217.         }
  218.         print "Duplicated " srcfl "\n to " dstfl > tstfl;
  219.       } else {
  220.     print "Existing file " dstfl " preserved" > tstfl;
  221.       }
  222.       close(srcfl);
  223.       close(dstfl);
  224.     }
  225.  
  226.     if ( sourceroot != "docs/conf/" ) {
  227.       srcfl = confdefault "installwinconf.awk";
  228.       gsub(/\//, "\\", srcfl);
  229.       if (system("del \"" srcfl "\"")) {
  230.         print "Failed to remove " srcfl > tstfl;
  231.       } else {
  232.         print "Successfully removed " srcfl > tstfl;
  233.       }
  234.     }
  235.     close(tstfl);
  236. }
  237.