Loading lts-diff.hs +10 −11 Original line number Diff line number Diff line Loading @@ -11,15 +11,17 @@ import qualified Data.Map as M import System.Environment (getArgs) import System.Exit (exitFailure) import Distribution.Package ( PackageId , PackageName(PackageName) , PackageName , PackageIdentifier(PackageIdentifier) , mkPackageName , pkgName , pkgVersion , unPackageName ) import Distribution.Version ( Version(Version) , versionBranch import Distribution.Version ( Version , mkVersion ) import Distribution.Text (display) import Safe (readMay) main :: IO () Loading Loading @@ -65,7 +67,7 @@ debianPackagesFile = "packages.txt" parseDebianPackage :: String -> Maybe PackageId parseDebianPackage line = do (rawName:rawVersion:_) <- return $ words line let name = PackageName rawName let name = mkPackageName rawName version <- parseVersion rawVersion return PackageIdentifier { pkgName = name , pkgVersion = version Loading @@ -89,7 +91,7 @@ parseLtsPackage line = case line of -- Throws eventual whitespaces -- from the end and the -- beginning of the name let name = PackageName let name = mkPackageName $ filter isAlpha rawName -- Throw the trailing comma away. Loading Loading @@ -145,8 +147,8 @@ printDifferences different = do printDifference :: PackageName -> (Version, Version) -> IO () printDifference name (debianV, ltsV) = putStrLn $ unPackageName name ++ " has version " ++ showVersion debianV ++ " in Debian but " ++ showVersion ltsV ++ " in LTS." display debianV ++ " in Debian but " ++ display ltsV ++ " in LTS." printMore :: S.Set PackageName -> IO () printMore more = do Loading @@ -160,12 +162,9 @@ parseVersion :: String -> Maybe Version parseVersion raw = do let parts = splitOn "." raw numericParts <- mapM readMay parts return $ Version numericParts [] return $ mkVersion numericParts stripComma :: String -> String stripComma s | last s == ',' = init s | otherwise = s showVersion :: Version -> String showVersion = intercalate "." . map show . versionBranch Loading
lts-diff.hs +10 −11 Original line number Diff line number Diff line Loading @@ -11,15 +11,17 @@ import qualified Data.Map as M import System.Environment (getArgs) import System.Exit (exitFailure) import Distribution.Package ( PackageId , PackageName(PackageName) , PackageName , PackageIdentifier(PackageIdentifier) , mkPackageName , pkgName , pkgVersion , unPackageName ) import Distribution.Version ( Version(Version) , versionBranch import Distribution.Version ( Version , mkVersion ) import Distribution.Text (display) import Safe (readMay) main :: IO () Loading Loading @@ -65,7 +67,7 @@ debianPackagesFile = "packages.txt" parseDebianPackage :: String -> Maybe PackageId parseDebianPackage line = do (rawName:rawVersion:_) <- return $ words line let name = PackageName rawName let name = mkPackageName rawName version <- parseVersion rawVersion return PackageIdentifier { pkgName = name , pkgVersion = version Loading @@ -89,7 +91,7 @@ parseLtsPackage line = case line of -- Throws eventual whitespaces -- from the end and the -- beginning of the name let name = PackageName let name = mkPackageName $ filter isAlpha rawName -- Throw the trailing comma away. Loading Loading @@ -145,8 +147,8 @@ printDifferences different = do printDifference :: PackageName -> (Version, Version) -> IO () printDifference name (debianV, ltsV) = putStrLn $ unPackageName name ++ " has version " ++ showVersion debianV ++ " in Debian but " ++ showVersion ltsV ++ " in LTS." display debianV ++ " in Debian but " ++ display ltsV ++ " in LTS." printMore :: S.Set PackageName -> IO () printMore more = do Loading @@ -160,12 +162,9 @@ parseVersion :: String -> Maybe Version parseVersion raw = do let parts = splitOn "." raw numericParts <- mapM readMay parts return $ Version numericParts [] return $ mkVersion numericParts stripComma :: String -> String stripComma s | last s == ',' = init s | otherwise = s showVersion :: Version -> String showVersion = intercalate "." . map show . versionBranch