Commit 58855718 authored by Sven Bartscher's avatar Sven Bartscher
Browse files

Update lts-diff.hs to work with current libraries

parent 519f5420
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -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 ()
@@ -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
@@ -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.
@@ -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
@@ -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