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