From 1d014ead8985348c3f352153d837cfab716ea28c Mon Sep 17 00:00:00 2001
From: Mikhail Glushenkov <the.dead.shall.rise@gmail.com>
Date: Wed, 2 Jan 2013 11:27:00 +0100
Subject: [PATCH] Don't die when the PATH variable is missing.

---
 cabal-install/Distribution/Client/Sandbox.hs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs
index 2e19a68031..8e736e9a37 100644
--- a/cabal-install/Distribution/Client/Sandbox.hs
+++ b/cabal-install/Distribution/Client/Sandbox.hs
@@ -57,7 +57,7 @@ import Distribution.Simple.Utils              ( die, debug, notice, info
                                               , debugNoWrap, intercalate
                                               , createDirectoryIfMissingVerbose )
 import Distribution.Verbosity                 ( Verbosity, lessVerbose )
-import Distribution.Compat.Env                ( setEnv )
+import Distribution.Compat.Env                ( lookupEnv, setEnv )
 import qualified Distribution.Client.Index as Index
 import qualified Distribution.Simple.Register as Register
 import Control.Exception                      ( bracket_ )
@@ -69,7 +69,6 @@ import System.Directory                       ( canonicalizePath
                                               , getCurrentDirectory
                                               , removeDirectoryRecursive
                                               , removeFile )
-import System.Environment                     ( getEnv )
 import System.FilePath                        ( (</>), getSearchPath
                                               , searchPathSeparator )
 
@@ -109,8 +108,9 @@ withSandboxBinDirOnSearchPath sandboxDir = bracket_ addBinDir rmBinDir
     -- required changes are too intrusive.
     addBinDir :: IO ()
     addBinDir = do
-      oldPath <- getEnv "PATH"
-      let newPath = sandboxBin ++ (searchPathSeparator:oldPath)
+      mbOldPath <- lookupEnv "PATH"
+      let newPath = maybe sandboxBin ((++) sandboxBin . (:) searchPathSeparator)
+                    mbOldPath
       setEnv "PATH" newPath
 
     rmBinDir :: IO ()
-- 
GitLab