@@ -3,9 +3,11 @@ module Runner ( run ) where
3import Control.Lens
3import Control.Lens
4import Distribution.Nixpkgs.Haskell.Stack
4import Distribution.Nixpkgs.Haskell.Stack
5import Distribution.Nixpkgs.Haskell.Stack.PrettyPrinting as PP
5import Distribution.Nixpkgs.Haskell.Stack.PrettyPrinting as PP
6+import Distribution.Version (Version(..))
6import Options.Applicative
7import Options.Applicative
7import Runner.Cli
8import Runner.Cli
8import Stack.Config
9import Stack.Config
10import qualified Stackage2nix as S2n
12import qualified Stackage2nix as S2n
@@ -24,12 +26,12 @@ run = do
24 , S2n.optNixpkgsMap = Nothing
26 , S2n.optNixpkgsMap = Nothing
25 , S2n.optOutPackages = opts ^. optStackageOutPackages
27 , S2n.optOutPackages = opts ^. optStackageOutPackages
26 , S2n.optOutConfig = opts ^. optStackageOutConfig }
28 , S2n.optOutConfig = opts ^. optStackageOutConfig }
27− _ <- S2n.run s2nOptions
29+ buildPlan <- S2n.run s2nOptions
29 -- generate haskell packages override
31 -- generate haskell packages override
31 pkgConfig = mkPackageConfig (opts ^. optPlatform) (opts ^. optCompilerId)
33 pkgConfig = mkPackageConfig (opts ^. optPlatform) (opts ^. optCompilerId)
32− overrideConfig = mkOverrideConfig opts
34+ overrideConfig = mkOverrideConfig opts (siGhcVersion $ bpSystemInfo buildPlan)
33 packages <- traverse (packageDerivation pkgConfig (opts ^. optHackageDb))
35 packages <- traverse (packageDerivation pkgConfig (opts ^. optHackageDb))
34 $ stackYaml ^. scPackages
36 $ stackYaml ^. scPackages
@@ -38,8 +40,8 @@ run = do
38 writeFile (opts ^. optOutFile) (show out)
40 writeFile (opts ^. optOutFile) (show out)
39 putStrLn $ "\nDerivation was written to " ++ opts ^. optOutFile
41 putStrLn $ "\nDerivation was written to " ++ opts ^. optOutFile
41−mkOverrideConfig :: Options -> OverrideConfig
43+mkOverrideConfig :: Options -> Version -> OverrideConfig
42−mkOverrideConfig opts = OverrideConfig
44+mkOverrideConfig opts ghcVersion = OverrideConfig
43− { _ocGhc = "ghc802"
45+ { _ocGhc = ghcVersion
44 , _ocStackagePackages = opts ^. optStackageOutPackages
46 , _ocStackagePackages = opts ^. optStackageOutPackages
45 , _ocStackageConfig = opts ^. optStackageOutConfig }
47 , _ocStackageConfig = opts ^. optStackageOutConfig }