r4310 refine filesystem paths logic, trying to make Makefile and init.php play together
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 10 Mar 2011 09:43:35 +0000 (09:43 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Thu, 10 Mar 2011 09:43:35 +0000 (09:43 +0000)
Makefile
wwwroot/inc/init.php

index 619d1ca127495246ddd4dca461a5f26cf8432dfa..38675019da13e52055562416c97219d7a1f15770 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,8 +2,12 @@ DESTDIR   ?=
 prefix    ?= /usr/local
 docdir    ?= $(prefix)/share/doc/RackTables
 datadir   ?= $(prefix)/share
-staticdir ?= $(datadir)/RackTables/static
-codedir   ?= $(datadir)/RackTables/code
+# Default values reproduce the layout present in tar.gz, which concurs with
+# the default values of $racktables_gwdir and $racktables_staticdir. But
+# once the latter are patched for a shared deploy, it is enough to execute
+# "make install" with appropriate arguments to split the filesystem.
+staticdir ?= $(datadir)/RackTables/wwwroot
+codedir   ?= $(datadir)/RackTables/wwwroot
 scriptdir ?= $(datadir)/RackTables
 
 INSTALL         := install
index 322e23370241f6dcdce6d28925cb5dda123dcec4..1b2f6c45e8ed411a9d6620593cb849a01b789715 100644 (file)
@@ -23,8 +23,17 @@ require_once 'interface-lib.php';
 // care to set, something would be working anyway.
 $user_auth_src = 'database';
 $require_local_account = TRUE;
+# Below are default values for two paths. The right way to change these
+# is to add respective line(s) to secret.php, unless this is a "shared
+# code, multiple instances" deploy.
 $racktables_gwdir = '../gateways';
 $racktables_staticdir = '.';
+# Set both paths at once before actually including secret.php, this way
+# both files will always be included from the same directory.
+$path_to_secret_php = $path_to_local_php = isset ($racktables_confdir) ?
+       "${racktables_confdir}/" : '';
+$path_to_secret_php .= 'secret.php';
+$path_to_local_php .= 'local.php';
 
 // (re)connects to DB, stores PDO object in $dbxlink global var
 function connectDB()
@@ -46,12 +55,12 @@ function connectDB()
 
 // secret.php may be missing, in which case this is a special fatal error
 ob_start();
-if (FALSE === @include_once 'secret.php')
+if (FALSE === @include_once $path_to_secret_php)
 {
        ob_end_clean();
        throw new RackTablesError
        (
-               "Database connection parameters are read from inc/secret.php file, " .
+               "Database connection parameters are read from ${path_to_secret_php} file, " .
                "which cannot be found.<br>You probably need to complete the installation " .
                "procedure by following <a href='?module=installer'>this link</a>.",
                RackTablesError::MISCONFIGURED
@@ -171,7 +180,7 @@ $op = '';
 // local.php may be missing, this case requires no special treatment
 // and must not generate any warnings
 ob_start();
-@include_once 'local.php';
+@include_once $path_to_local_php;
 $tmp = ob_get_clean();
 if ($tmp != '' and ! preg_match ("/^\n+$/D", $tmp))
        echo $tmp;