git.iko.soy/typeable/cabal2nix
on master help sign in
Language/Nix/Identifier.hs: hide Identifier's constructor
05809a4Peter Simons
src/Cabal2Nix/Generate.hs+4−4
@@ -80,7 +80,7 @@ cabal2nix' PackageDescription {..} = normalize $ postProcess $
80
80
81convertBuildInfo :: Cabal.BuildInfo -> Nix.BuildInfo
81convertBuildInfo :: Cabal.BuildInfo -> Nix.BuildInfo
82convertBuildInfo Cabal.BuildInfo {..} = mempty
82convertBuildInfo Cabal.BuildInfo {..} = mempty
83− & haskell .~ Set.fromList [ Identifier y | (Dependency (PackageName y) _) <- targetBuildDepends ]
83+ & haskell .~ Set.fromList [ set ident y undefined | (Dependency (PackageName y) _) <- targetBuildDepends ]
84− & system .~ Set.fromList [ Identifier y | x <- extraLibs, y <- libNixName x, not (null y) ]
84+ & system .~ Set.fromList [ set ident y undefined | x <- extraLibs, y <- libNixName x, not (null y) ]
85− & pkgconfig .~ Set.fromList [ Identifier y | Dependency (PackageName x) _ <- pkgconfigDepends, y <- libNixName x, not (null y) ]
85+ & pkgconfig .~ Set.fromList [ set ident y undefined | Dependency (PackageName x) _ <- pkgconfigDepends, y <- libNixName x, not (null y) ]
86− & tool .~ Set.fromList [ Identifier y | Dependency (PackageName x) _ <- buildTools, y <- buildToolNixName x, not (null y) ]
86+ & tool .~ Set.fromList [ set ident y undefined | Dependency (PackageName x) _ <- buildTools, y <- buildToolNixName x, not (null y) ]
src/Cabal2Nix/Normalize.hs+5−5
@@ -7,7 +7,7 @@ import Data.Function
7import Data.List
7import Data.List
8import Data.Set ( Set )
8import Data.Set ( Set )
9import qualified Data.Set as Set
9import qualified Data.Set as Set
10−import Language.Nix.Identifier ( Identifier(..) )
10+import Language.Nix.Identifier ( Identifier, ident )
11import Distribution.Nixpkgs.Haskell
11import Distribution.Nixpkgs.Haskell
12import Distribution.Nixpkgs.Meta
12import Distribution.Nixpkgs.Meta
13import Distribution.Nixpkgs.Util.Regex ( regsubmatch )
13import Distribution.Nixpkgs.Util.Regex ( regsubmatch )
@@ -25,9 +25,9 @@ normalize drv = drv
25
25
26normalizeBuildInfo :: PackageName -> BuildInfo -> BuildInfo
26normalizeBuildInfo :: PackageName -> BuildInfo -> BuildInfo
27normalizeBuildInfo (PackageName pname) bi = bi
27normalizeBuildInfo (PackageName pname) bi = bi
28− & haskell . contains (Identifier pname) .~ False
28+ & haskell . contains (set ident pname undefined) .~ False
29− & tool . contains (Identifier pname) .~ False
29+ & tool . contains (set ident pname undefined) .~ False
30− & tool %~ normalizeNixBuildTools . Set.filter (\(Identifier n) -> n `notElem` coreBuildTools)
30+ & tool %~ normalizeNixBuildTools . Set.filter (\n -> n^.ident `notElem` coreBuildTools)
31
31
32 {-
32 {-
33 {
33 {
@@ -68,7 +68,7 @@ normalizeNixBuildTools :: Set Identifier -> Set Identifier
68normalizeNixBuildTools = Set.fromList . concatMap buildToolNixName' . Set.toList
68normalizeNixBuildTools = Set.fromList . concatMap buildToolNixName' . Set.toList
69 where
69 where
70 buildToolNixName' :: Identifier -> [Identifier]
70 buildToolNixName' :: Identifier -> [Identifier]
71− buildToolNixName' (Identifier n) = [ Identifier n' | n' <- buildToolNixName n ]
71+ buildToolNixName' n = [ set ident n' undefined | n' <- buildToolNixName (n^.ident) ]
72
72
73-- |Strip any kind of path prefix from maintainer names, filter duplicates, and
73-- |Strip any kind of path prefix from maintainer names, filter duplicates, and
74-- sort the resulting list alphabetically.
74-- sort the resulting list alphabetically.
src/Language/Nix/Identifier.hs+3−4
@@ -1,7 +1,7 @@
1{-# LANGUAGE DeriveGeneric #-}
1{-# LANGUAGE DeriveGeneric #-}
2{-# LANGUAGE GeneralizedNewtypeDeriving #-}
2{-# LANGUAGE GeneralizedNewtypeDeriving #-}
3
3
4−module Language.Nix.Identifier ( Identifier(..), ident, quote, needsQuoting ) where
4+module Language.Nix.Identifier ( Identifier, ident, quote, needsQuoting ) where
5
5
6import Control.DeepSeq.Generics
6import Control.DeepSeq.Generics
7import Control.Lens
7import Control.Lens
@@ -23,8 +23,7 @@ import GHC.Generics ( Generic )
23-- >>> let i = Identifier "foo.bar" in (i, pPrint i)
23-- >>> let i = Identifier "foo.bar" in (i, pPrint i)
24-- (Identifier "foo.bar","foo.bar")
24-- (Identifier "foo.bar","foo.bar")
25--
25--
26−-- The 'Ord' instance for identifiers is respects character case in less-than
26+-- The 'Ord' instance for identifiers is aware of character case:
27−-- comparisons, etc.
28--
27--
29-- >>> Identifier "abc" == Identifier "ABC"
28-- >>> Identifier "abc" == Identifier "ABC"
30-- False
29-- False
@@ -74,7 +73,7 @@ needsQuoting str = not (str =~ grammar)
74ident :: Lens' Identifier String
73ident :: Lens' Identifier String
75ident f (Identifier str) = Identifier `fmap` f str
74ident f (Identifier str) = Identifier `fmap` f str
76
75
77−-- | Help function that quotes a given identifier string (if necessary).
76+-- | Helper function to quote a given identifier string if necessary.
78--
77--
79-- >>> putStrLn (quote "abc")
78-- >>> putStrLn (quote "abc")
80-- abc
79-- abc