diff --git a/setup/cli/modules/deploy.php b/setup/cli/modules/deploy.php index d307e51f2616e34ab378689b1993111b3b81eaa5..7eb92514ced75f5c3c25c779b4580ac1b46a96c8 100644 --- a/setup/cli/modules/deploy.php +++ b/setup/cli/modules/deploy.php @@ -102,7 +102,7 @@ class Deployment extends Unpacker { # main.inc.php $include = ($upgrade) ? $this->get_include_dir() : ($options['include'] ? $options['include'] - : "{$this->destination}/include"); + : rtrim($this->destination, '/')."/include"); $include = rtrim($include, '/').'/'; # Locate the upload folder @@ -119,9 +119,11 @@ class Deployment extends Unpacker { # Unpack the include folder $this->unpackage("$root/include/{,.}*", $include, -1, array("*/include/ost-config.php")); - if (!$options['dry-run'] - && $include != "{$this->destination}/include") - $this->change_include_dir($include); + if (!$options['dry-run']) { + if ($include != "{$this->destination}/include/") + $this->change_include_dir($include); + $this->touch_version(); + } if ($options['clean']) { // Clean everything but include folder first @@ -132,6 +134,30 @@ class Deployment extends Unpacker { "*/.htaccess")); } } + + function touch_version($version=false) { + if (!$version) + $version = exec('git describe'); + if (!$version) + return false; + + $bootstrap_php = $this->destination . '/bootstrap.php'; + $lines = explode("\n", file_get_contents($bootstrap_php)); + # Find the line that defines INCLUDE_DIR + $match = array(); + foreach ($lines as &$line) { + // TODO: Change THIS_VERSION inline to be current `git describe` + if (preg_match("/(\s*)define\s*\(\s*'THIS_VERSION'/", $line, $match)) { + # Replace the definition with the new locatin + $line = $match[1] . "define('THIS_VERSION', '" + . $version + . "'); // Set by installer"; + break; + } + } + if (!file_put_contents($bootstrap_php, implode("\n", $lines))) + die("Unable to write version information to bootstrap.php\n"); + } } Module::register('deploy', 'Deployment'); diff --git a/setup/cli/modules/unpack.php b/setup/cli/modules/unpack.php index af5cfd6247079facfcbf6215819475f0417be120..f200538ff5dcc5c911f8410e769b5aecfd6d01ef 100644 --- a/setup/cli/modules/unpack.php +++ b/setup/cli/modules/unpack.php @@ -72,7 +72,7 @@ class Unpacker extends Module { } } if (!file_put_contents($bootstrap_php, implode("\n", $lines))) - die("Unable to configure location of INCLUDE_DIR in main.inc.php\n"); + die("Unable to configure location of INCLUDE_DIR in bootstrap.php\n"); } function exclude($pattern, $match) {