@@ -1,5 +1,6 @@
1+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
1{-# LANGUAGE LambdaCase #-}
2{-# LANGUAGE LambdaCase #-}
2−{-# LANGUAGE OverloadedStrings, GeneralizedNewtypeDeriving #-}
3+{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE RecordWildCards #-}
4{-# LANGUAGE RecordWildCards #-}
4{-# LANGUAGE TemplateHaskell #-}
5{-# LANGUAGE TemplateHaskell #-}
@@ -7,14 +8,15 @@ module Distribution.Nixpkgs.Haskell.Stack where
8import Control.Lens
9import Control.Lens
9import Data.Text as T
10import Data.Text as T
10−import Distribution.System as System
11import Distribution.Compiler as Compiler
11import Distribution.Compiler as Compiler
12−import Distribution.PackageDescription as PackageDescription
13import Distribution.Nixpkgs.Fetch
12import Distribution.Nixpkgs.Fetch
14import Distribution.Nixpkgs.Haskell.Derivation
13import Distribution.Nixpkgs.Haskell.Derivation
15import Distribution.Nixpkgs.Haskell.FromCabal as FromCabal
14import Distribution.Nixpkgs.Haskell.FromCabal as FromCabal
16import Distribution.Nixpkgs.Haskell.PackageSourceSpec as PackageSourceSpec
15import Distribution.Nixpkgs.Haskell.PackageSourceSpec as PackageSourceSpec
16+import Distribution.PackageDescription as PackageDescription
17+import Distribution.System as System
17−import Language.Nix
18+import Language.Nix as Nix
19+import Network.URI as URI
18import Stack.Config
20import Stack.Config
20newtype HackageDb = HackageDb { fromHackageDB :: T.Text }
22newtype HackageDb = HackageDb { fromHackageDB :: T.Text }
@@ -38,7 +40,7 @@ makeLenses ''PackageConfig
38mkPackageConfig :: Platform -> CompilerId -> PackageConfig
40mkPackageConfig :: Platform -> CompilerId -> PackageConfig
39mkPackageConfig platform compilerId = PackageConfig
41mkPackageConfig platform compilerId = PackageConfig
40 { _pcHaskellResolver = const True
42 { _pcHaskellResolver = const True
41− , _pcNixpkgsResolver = \i -> Just (binding # (i, path # [i]))
43+ , _pcNixpkgsResolver = \i -> Just (Nix.binding # (i, Nix.path # [i]))
42 , _pcTargetPlatform = platform
44 , _pcTargetPlatform = platform
43 , _pcTargetCompiler = unknownCompilerInfo compilerId NoAbiTag
45 , _pcTargetCompiler = unknownCompilerInfo compilerId NoAbiTag
44 , _pcFlagAssignment = []
46 , _pcFlagAssignment = []
@@ -51,22 +53,26 @@ getStackPackageFromDb
51getStackPackageFromDb optHackageDb stackPackage =
53getStackPackageFromDb optHackageDb stackPackage =
52 PackageSourceSpec.getPackage
54 PackageSourceSpec.getPackage
53 (unHackageDb <$> optHackageDb)
55 (unHackageDb <$> optHackageDb)
54− (stackLocationToSource $ stackPackage ^. spSource)
56+ (stackLocationToSource $ stackPackage ^. spLocation)
56−stackLocationToSource :: StackLocation -> Source
58+stackLocationToSource :: PackageLocation -> Source
57stackLocationToSource = \case
59stackLocationToSource = \case
58 HackagePackage p -> Source
60 HackagePackage p -> Source
59 { sourceUrl = "cabal://" ++ T.unpack p
61 { sourceUrl = "cabal://" ++ T.unpack p
60 , sourceRevision = mempty
62 , sourceRevision = mempty
61 , sourceHash = UnknownHash
63 , sourceHash = UnknownHash
62 , sourceCabalDir = mempty }
64 , sourceCabalDir = mempty }
63− StackPath p -> Source
65+ StackFilePath p -> Source
64− { sourceUrl = T.unpack p
66+ { sourceUrl = p
65 , sourceRevision = mempty
67 , sourceRevision = mempty
66 , sourceHash = UnknownHash
68 , sourceHash = UnknownHash
67 , sourceCabalDir = mempty }
69 , sourceCabalDir = mempty }
68−
70+ StackUri uri -> Source
71+ { sourceUrl = URI.uriToString id uri mempty
72+ , sourceRevision = mempty
73+ , sourceHash = UnknownHash
74+ , sourceCabalDir = mempty }
69− StackRepoGit rg -> Source
75+ StackRepoGit rg -> Source
70 { sourceUrl = T.unpack $ rg ^. rgUri
76 { sourceUrl = T.unpack $ rg ^. rgUri
71 , sourceRevision = T.unpack $ rg ^. rgCommit
77 , sourceRevision = T.unpack $ rg ^. rgCommit
72 , sourceHash = UnknownHash
78 , sourceHash = UnknownHash