@@ -19,9 +19,8 @@ import Data.Foldable (forM_)
19
19
import qualified Distribution.Simple.GHC as GHC
20
20
import qualified Distribution.Simple.GHCJS as GHCJS
21
21
22
- import Distribution.Client.Sandbox (getSandboxConfigFilePath )
23
22
import Distribution.Client.Sandbox.PackageEnvironment (sandboxPackageDBPath )
24
- import Distribution.Client.Sandbox.Types (UseSandbox (.. ))
23
+ import Distribution.Client.Sandbox.Types (UseSandbox (.. ), SandboxMetadata ( .. ) )
25
24
26
25
import Distribution.Simple.Compiler (Compiler , CompilerFlavor (.. ), compilerFlavor )
27
26
import Distribution.Simple.Program (ghcProgram , ghcjsProgram , lookupProgram )
@@ -65,23 +64,23 @@ exec verbosity useSandbox comp platform programDb extraArgs =
65
64
66
65
[] -> die " Please specify an executable to run"
67
66
where
68
- environmentOverrides =
67
+ environmentOverrides =
69
68
case useSandbox of
70
69
NoSandbox -> return []
71
- (UseSandbox sandboxDir ) ->
72
- sandboxEnvironment verbosity sandboxDir comp platform programDb
70
+ (UseSandbox sandboxMetadata ) ->
71
+ sandboxEnvironment verbosity sandboxMetadata comp platform programDb
73
72
74
73
75
74
-- | Return the package's sandbox environment.
76
75
--
77
76
-- The environment sets GHC_PACKAGE_PATH so that GHC will use the sandbox.
78
77
sandboxEnvironment :: Verbosity
79
- -> FilePath
78
+ -> SandboxMetadata
80
79
-> Compiler
81
80
-> Platform
82
81
-> ProgramDb
83
82
-> IO [(String , Maybe String )]
84
- sandboxEnvironment verbosity sandboxDir comp platform programDb =
83
+ sandboxEnvironment verbosity sandboxMetadata comp platform programDb =
85
84
case compilerFlavor comp of
86
85
GHC -> env GHC. getGlobalPackageDB ghcProgram " GHC_PACKAGE_PATH"
87
86
GHCJS -> env GHCJS. getGlobalPackageDB ghcjsProgram " GHCJS_PACKAGE_PATH"
@@ -90,7 +89,7 @@ sandboxEnvironment verbosity sandboxDir comp platform programDb =
90
89
env getGlobalPackageDB hcProgram packagePathEnvVar = do
91
90
let Just program = lookupProgram hcProgram programDb
92
91
gDb <- getGlobalPackageDB verbosity program
93
- sandboxConfigFilePath <- getSandboxConfigFilePath mempty
92
+ let sandboxConfigFilePath = smSandboxConfigFile sandboxMetadata
94
93
let compilerPackagePath = hcPackagePath gDb
95
94
-- Packages database must exist, otherwise things will start
96
95
-- failing in mysterious ways.
@@ -104,6 +103,7 @@ sandboxEnvironment verbosity sandboxDir comp platform programDb =
104
103
]
105
104
106
105
hcPackagePath gDb =
106
+ let sandboxDir = smSandboxDirectory sandboxMetadata in
107
107
let s = sandboxPackageDBPath sandboxDir comp platform
108
108
in Just $ prependToSearchPath gDb s
109
109
@@ -129,5 +129,6 @@ requireProgram' verbosity useSandbox programDb exe = do
129
129
flip modifyProgramSearchPath programDb $ \ searchPath ->
130
130
case useSandbox of
131
131
NoSandbox -> searchPath
132
- UseSandbox sandboxDir ->
132
+ UseSandbox sandboxMetadata ->
133
+ let sandboxDir = smSandboxDirectory sandboxMetadata in
133
134
ProgramSearchPathDir (sandboxDir </> " bin" ) : searchPath
0 commit comments