automatically configure git paths (dir + public clone url)
authorChristian Weiske <cweiske@cweiske.de>
Mon, 7 Jul 2014 06:50:08 +0000 (08:50 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Mon, 7 Jul 2014 06:50:08 +0000 (08:50 +0200)
data/config.default.php
src/phorkie/Tools.php
www/www-header.php

index 2e588fa..5b56fc7 100644 (file)
@@ -2,15 +2,21 @@
 $pharFile = \Phar::running();
 if ($pharFile == '') {
     $phorkieDir = __DIR__ . '/../';
+    $wwwDir = $phorkieDir . 'www/';
 } else {
     //remove phar:// from the path
     $phorkieDir = dirname(substr($pharFile, 7)) . '/';
+    $wwwDir = $phorkieDir;
 }
 
 $GLOBALS['phorkie']['cfg'] = array(
     'debug'         => false,
-    'gitdir'        => $phorkieDir . 'repos/git/',
-    'workdir'       => $phorkieDir . 'repos/work/',
+    'git'           => array(
+        'public'    => '%BASEURL%' . 'repos/git/',
+        'private'   => null,
+    ),
+    'gitdir'        => $wwwDir . 'repos/git/',
+    'workdir'       => $wwwDir . 'repos/work/',
     'tpl'           => __DIR__ . '/templates/',
     'baseurl'       => null,
     'avatars'       => true,
index e97c546..2febb29 100644 (file)
@@ -49,6 +49,23 @@ class Tools
     }
 
     /**
+     * Get the full URL to a path, but remove the .phar file from
+     * the base URL if necessary
+     *
+     * @param string $path Path to the file
+     *
+     * @return string Full URL without .phar/
+     */
+    public static function fullUrlNoPhar($path = '')
+    {
+        $base = static::fullUrl();
+        if (substr($base, -6) == '.phar/') {
+            $base = dirname($base) . '/';
+        }
+        return $base . $path;
+    }
+
+    /**
      * Removes malicious parts from a file name
      *
      * @param string $file File name from the user
index 5381eed..eaf1952 100644 (file)
@@ -50,6 +50,12 @@ if (file_exists($cfgFilePath)) {
 
 if ($GLOBALS['phorkie']['cfg']['baseurl'] === null) {
     $GLOBALS['phorkie']['cfg']['baseurl'] = Tools::detectBaseUrl();
+    if (substr($GLOBALS['phorkie']['cfg']['git']['public'], 0, 9) == '%BASEURL%') {
+        //make autoconfig work
+        $GLOBALS['phorkie']['cfg']['git']['public'] = Tools::fullUrlNoPhar(
+            substr($GLOBALS['phorkie']['cfg']['git']['public'], 9)
+        );
+    }
 }
 
 // Set/Get git commit session variables