Remove code duplication
authorJoachim Breitner <mail@joachim-breitner.de>
Sun, 10 Oct 2010 18:37:39 +0000 (18:37 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Sun, 10 Oct 2010 18:37:39 +0000 (18:37 +0000)
PlatformOutput.hs
Utils.hs

index fe89c70..add86e6 100644 (file)
@@ -17,6 +17,7 @@ import Data.Version (showVersion, parseVersion)
 import Text.ParserCombinators.ReadP (readP_to_S, between, eof)
 
 import Types
+import Utils
 
 outputPlatform :: (Show t) => t -> 
  DistroInfo ->
@@ -87,11 +88,10 @@ mkTable hackage datas = table << (
             LT -> "(<)"
             EQ -> "(=)"
             GT -> "(>)"
-            where upstream_version = takeWhile (/= '-') dver
-                  dver' | Just ver' <- fromDotless upstream_version
+            where dver' | Just ver' <- fromDotless (upstream dver)
                             = ver'
                         | otherwise
-                            = parseVersion' upstream_version
+                            = parseVersion' (upstream dver)
 
 fromDotless str =
     if length str == 8 && all isDigit str
index bbfd733..a8f5a90 100644 (file)
--- a/Utils.hs
+++ b/Utils.hs
@@ -33,3 +33,8 @@ fromListMax = foldr insert M.empty
         higher v Nothing   = Just v
        higher v (Just v') = Just (max v v')
 
+upstream :: String -> String
+upstream str = case elemIndices '-' str of
+               [] -> str
+               idx -> take (last idx) str