Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/f2c901019e9828f82fc91cd126bc466de3e36c5c >--------------------------------------------------------------- commit f2c901019e9828f82fc91cd126bc466de3e36c5c Author: Duncan Coutts <[email protected]> Date: Thu May 3 16:21:17 2007 +0000 List packages in name and version order (case-insensitively) >--------------------------------------------------------------- .../src/Network/Hackage/CabalInstall/List.hs | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/List.hs b/cabal-install/src/Network/Hackage/CabalInstall/List.hs index 985cec0..dbdc293 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/List.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/List.hs @@ -16,7 +16,9 @@ module Network.Hackage.CabalInstall.List import Text.Regex import Data.Maybe (catMaybes, isJust) -import Data.List (find, nub) +import Data.List (find, nub, sortBy) +import Data.Char as Char (toLower) +import Data.Ord (comparing) import Distribution.Package import Distribution.PackageDescription import Network.Hackage.CabalInstall.Config (getKnownPackages) @@ -27,13 +29,18 @@ import Network.Hackage.CabalInstall.Types (PkgInfo(..), ConfigFlags(..), Unresol list :: ConfigFlags -> [String] -> IO () list cfg pats = do pkgs <- getKnownPackages cfg - mapM_ doList $ if null pats then pkgs else nub (concatMap (findInPkgs pkgs) pats) + let pkgs' | null pats = pkgs + | otherwise = nub (concatMap (findInPkgs pkgs) pats) + mapM_ doList (sortBy (comparing nameAndVersion) pkgs') where findInPkgs :: [PkgInfo] -> String -> [PkgInfo] findInPkgs pkgs pat = let rx = mkRegexWithOpts pat False False in filter (isJust . matchRegex rx . showInfo) pkgs showInfo :: PkgInfo -> String showInfo pkg = showPackageId (infoId pkg) ++ "\n" ++ infoSynopsis pkg + nameAndVersion PkgInfo { infoId = + PackageIdentifier { pkgName = name, pkgVersion = version } + } = (map Char.toLower name, name, version) doList :: PkgInfo -> IO () doList info = do _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
