fixing version numbers in Makefile.PL, adding a
[koha.git] / rewrite-config.PL
index d17387e..9f4297a 100644 (file)
@@ -17,6 +17,8 @@
 #
 # Current maintainer MJR http://mjr.towers.org.uk/
 # See http://www.koha.org/wiki/?page=KohaInstaller
+# 
+# 2007/11/12   Added DB_PORT and changed other keywords to reflect multi-dbms support. -fbcit
 
 use Sys::Hostname;
 use Socket;
@@ -31,43 +33,77 @@ rewrite-config.PL - helper for the Koha packager and installer
 
 =head1 DESCRIPTION
 
-This helper script replaces placeholders in the
+This helper script replaces keywords in the
 configuration files with value either supplied through
 the environment (with export, or by putting them on
-the start of the make command linke) or with reasonable
+the start of the make command line) or with reasonable
 guesses worked out by the script.
 
-=head2 KEYS
+=head2 KEYWORDS
 
-The following configuration keys are available:
+The following configuration keywords are available:
 
-BASE_DIR, MYSQL_DB, MYSQL_HOST, MYSQL_PASS, MYSQL_USER, WEBMASTER_EMAIL, WEBSERVER_DOMAIN,
+PREFIX,
+BASE_DIR, CGI_DIR, LOG_DIR, INSTALL_BASE,
+DB_TYPE, DB_HOST, DB_PORT, DB_NAME, DB_PASS, DB_USER, WEBMASTER_EMAIL, WEBSERVER_DOMAIN,
 WEBSERVER_HOST, WEBSERVER_IP, WEBSERVER_PORT, WEBSERVER_PORT_LIBRARIAN, ZEBRA_PASS, ZEBRA_USER
 
+=head1 EXAMPLES
+
+To override the guessed hostname and email address, run:
+
+       WEBSERVER_HOST=mysecrethostname.com.invalid \
+       WEBMASTER_EMAIL=webmaster@publichost.com make install
+
+Note that if WEBSERVER_HOST does not resolve to an IP address, you will
+also need to override WEBSERVER_IP.
+
 =cut
 
 $myhost = hostname();
 $mydomain = $myhost;
 $mydomain =~ s/^.*?\.//;
+# This is set here to rescue systems with broken DNS
+$myip = $ENV{'WEBSERVER_IP'} || inet_ntoa(scalar gethostbyname($myhost||'localhost')) || die "Cannot get our own IP address: DNS fault?";
+$prefix = $ENV{'INSTALL_BASE'} || "/usr";
 
 # These are our configuration guesses
 # Keys were extracted by
 # <grep -o '__.*__' etc/* | cut -f2 -d: | sort -u | sed -e 's/^/  "/;s/$/" => "",/'
 %configuration = (
-  "__BASE_DIR__" => sprintf("/usr/lib/perl5/site-perl/%vd/koha",$^V),
-  "__MYSQL_DB__" => "koha",
-  "__MYSQL_HOST__" => $myhost,
-  "__MYSQL_PASS__" => "katikoan",
-  "__MYSQL_USER__" => "kohaadmin",
+  "__LOG_DIR__" => "/var/log",
+  "__DB_TYPE__" => "mysql",
+  "__DB_NAME__" => "koha",
+  "__DB_HOST__" => $myhost,
+  "__DB_PORT__" => "3306",
+  "__DB_USER__" => "kohaadmin",
+  "__DB_PASS__" => "katikoan",
   "__WEBMASTER_EMAIL__" => 'webmaster@'.$mydomain,
   "__WEBSERVER_DOMAIN__" => $mydomain,
   "__WEBSERVER_HOST__" => $myhost,
-  # This is set like this to rescue systems with broken DNS
-  "__WEBSERVER_IP__" => $ENV{'WEBSERVER_IP'} || inet_ntoa(scalar gethostbyname($myhost||'localhost')) || die "Cannot get our own IP address: DNS fault?",
-  "__WEBSERVER_PORT__" => 80,
-  "__WEBSERVER_PORT_LIBRARIAN__" => 8080,
+  "__WEBSERVER_IP__" => $myip,
+  "__WEBSERVER_PORT__" => "80",
+  "__WEBSERVER_PORT_LIBRARIAN__" => "8080",
   "__ZEBRA_PASS__" => "zebrastripes",
   "__ZEBRA_USER__" => "kohauser",
+  '__INTRANET_CGI_DIR__' => "$prefix/intranet/cgi-bin",
+  '__INTRANET_TMPL_DIR__' => "$prefix/intranet/templates",
+  '__INTRANET_WWW_DIR__' => "$prefix/intranet/www",
+  '__OPAC_CGI_DIR__' => "$prefix/opac/cgi-bin",
+  '__OPAC_TMPL_DIR__' => "$prefix/opac/templates",
+  '__OPAC_WWW_DIR__' => "$prefix/opac/www",
+  '__PERL_MODULE_DIR__' =>  ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/lib/perl5/site_perl/%vd",$^V))."/koha",
+  '__KOHA_CONF_DIR__' => "$prefix/etc/koha",
+  '__ZEBRA_CONF_DIR__' => "$prefix/etc/koha/zebradb",
+  '__MISC_DIR__' => "$prefix/misc",
+  '__SCRIPT_DIR__' => "$prefix/bin",
+  '__MAN_DIR__' => "$prefix/man",
+  '__DOC_DIR__' => "$prefix/doc",
+  '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb",
+  '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb",
+  '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb",
+  '__ZEBRA_MARC_FORMAT__' => 'marc21',
+  '__ZEBRA_LANGUAGE__' => 'en',
 );
 
 # Override configuration from the environment
@@ -79,7 +115,7 @@ foreach $key (keys %configuration) {
 
 $fname = $ARGV[0];
 $file = read_file($fname);
-$file =~ s/__.*?__/$configuration{$&}/seg;
+$file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
 chmod 0644, $fname;
 open(OUTPUT,">$fname") || die "Can't open $fname for write: $!";
 print OUTPUT $file;