@@ -1,8 +1,8 @@
1module LtsHaskell where
1module LtsHaskell where
3import AllCabalHashes
3import AllCabalHashes
4−import Stackage.BuildPlan
4+import Control.Lens
5−import Stackage.Types (SystemInfo(..))
5+import Data.Maybe
6import Distribution.Text (display)
6import Distribution.Text (display)
7import Control.Monad
7import Control.Monad
8import Distribution.Compiler (CompilerInfo(..), AbiTag(NoAbiTag), CompilerId(..), CompilerFlavor(GHC))
8import Distribution.Compiler (CompilerInfo(..), AbiTag(NoAbiTag), CompilerId(..), CompilerFlavor(GHC))
@@ -15,8 +15,10 @@ import Distribution.Nixpkgs.PackageMap (readNixpkgPackageMap, resolve)
15import Distribution.Version (Version, withinRange)
15import Distribution.Version (Version, withinRange)
16import Language.Haskell.Extension (Language(Haskell98, Haskell2010))
16import Language.Haskell.Extension (Language(Haskell98, Haskell2010))
17import Language.Nix
17import Language.Nix
18−import Control.Lens
18+import Stack.Config
19−import Data.Maybe
19+import Stackage.BuildPlan
20+import Stackage.Types (SystemInfo(..))
21+import System.FilePath as Path
21import qualified Data.Yaml as Yaml
23import qualified Data.Yaml as Yaml
22import qualified Data.Map as Map
24import qualified Data.Map as Map
@@ -66,3 +68,10 @@ buildPackageSetConfig optAllCabalHashes optNixpkgsRepository buildPlan = do
66 , targetCompiler = ghcCompilerInfo (siGhcVersion systemInfo)
68 , targetCompiler = ghcCompilerInfo (siGhcVersion systemInfo)
67 , nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
69 , nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
68 , haskellResolver = buildPlanContainsDependency packageVersions }
70 , haskellResolver = buildPlanContainsDependency packageVersions }
72+-- Path to Yaml build definition file in lts-haskell repository
73+buildPlanFilePath :: FilePath -> StackResolver -> FilePath
74+buildPlanFilePath ltsRepoDir resolver =
76+ (resolver ^. to unStackResolver) Path.<.>