瀏覽代碼

Conforming to XDG Base Directory Specification (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html)

ntoniazzi 12 年之前
父節點
當前提交
c6860400f0
共有 1 個文件被更改,包括 9 次插入4 次删除
  1. 9 4
      src/Composer/Factory.php

+ 9 - 4
src/Composer/Factory.php

@@ -50,10 +50,11 @@ class Factory
                 }
                 $home = strtr(getenv('APPDATA'), '\\', '/') . '/Composer';
             } else {
-                if (!getenv('HOME')) {
-                    throw new \RuntimeException('The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly');
+                $xdgConfig = getenv('XDG_CONFIG_HOME');
+                if (!$xdgConfig) {
+                    $xdgConfig = rtrim(getenv('HOME'), '/') . '/.config';
                 }
-                $home = rtrim(getenv('HOME'), '/') . '/.composer';
+                $home = $xdgConfig . '/composer';
             }
         }
 
@@ -77,7 +78,11 @@ class Factory
                 }
                 $cacheDir = strtr($cacheDir, '\\', '/');
             } else {
-                $cacheDir = $home.'/cache';
+                $xdgCache = getenv('XDG_CACHE_HOME');
+                if (!$xdgCache) {
+                    $xdgCache = rtrim(getenv('HOME'), '/') . '/.cache';
+                }
+                $cacheDir = $xdgCache . '/composer';
             }
         }