From c6860400f0814094cd4acf1c5b13d5f5868684d0 Mon Sep 17 00:00:00 2001 From: ntoniazzi Date: Tue, 11 Dec 2012 11:49:30 +0100 Subject: [PATCH] Conforming to XDG Base Directory Specification (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) --- src/Composer/Factory.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Composer/Factory.php b/src/Composer/Factory.php index 4f7bfefd8..cc20cd575 100644 --- a/src/Composer/Factory.php +++ b/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'; } }