git.iko.soy/typeable/cabal2nix
on master help sign in
PackageList.hs: improved import specification
bdfde6aPeter Simons
src/PackageList.hs+10−9
@@ -1,13 +1,14 @@
1module Main ( main ) where
1module Main ( main ) where
2
2
3import Control.Exception ( assert )
3import Control.Exception ( assert )
4−import Data.Char
4+import Data.Char ( toLower )
5−import Data.List
5+import Data.List ( nubBy, sortBy )
6−import Data.Version
6+import Data.Ord ( comparing )
7+import Data.Version ( Version(..) )
7−import Distribution.Package
8+import Distribution.Package ( PackageIdentifier(..), PackageName(..) )
8−import Distribution.Text
9+import Distribution.Text ( simpleParse, display )
9−import System.Process
10+import System.Process ( readProcess )
10−import Text.Regex.Posix
11+import Text.Regex.Posix ( (=~), match, makeRegexOpts, compExtended, execBlank )
11
12
12type Pkg = (String,Version,String) -- (Name, Version, Attribute)
13type Pkg = (String,Version,String) -- (Name, Version, Attribute)
13type Pkgset = [Pkg]
14type Pkgset = [Pkg]
@@ -18,7 +19,7 @@ comparePkgByVersion (n1,v1,a1) (n2,v2,a2)
18 | otherwise = compare a2 a1
19 | otherwise = compare a2 a1
19
20
20comparePkgByName :: Pkg -> Pkg-> Ordering
21comparePkgByName :: Pkg -> Pkg-> Ordering
21−comparePkgByName (n1,_,_) (n2,_,_) = compare (map toLower n1) (map toLower n2)
22+comparePkgByName (n1,_,_) (n2,_,_) = comparing (map toLower) n1 n2
22
23
23parseHaskellPackageName :: String -> Maybe Pkg
24parseHaskellPackageName :: String -> Maybe Pkg
24parseHaskellPackageName name =
25parseHaskellPackageName name =
@@ -47,7 +48,7 @@ selectLatestVersions :: Pkgset -> Pkgset
47selectLatestVersions = nubBy (\x y -> comparePkgByName x y == EQ) . sortBy comparePkgByVersion
48selectLatestVersions = nubBy (\x y -> comparePkgByName x y == EQ) . sortBy comparePkgByVersion
48
49
49formatPackageLine :: Pkg -> String
50formatPackageLine :: Pkg -> String
50−formatPackageLine (name,version,attr) = show (name, showVersion version, Just url)
51+formatPackageLine (name,version,attr) = show (name, display version, Just url)
51 where
52 where
52 url = "http://hydra.nixos.org/job/nixpkgs/trunk/" ++ attr
53 url = "http://hydra.nixos.org/job/nixpkgs/trunk/" ++ attr
53
54