From 3893a43774eee2a01df19c15c6c59c6f6d358c29 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 13 Jun 2016 19:25:01 -0400 Subject: fix buggy readVersionMaybe --- src/Propellor/Property/Reboot.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/Propellor') diff --git a/src/Propellor/Property/Reboot.hs b/src/Propellor/Property/Reboot.hs index 161f2aee..6a0626a2 100644 --- a/src/Propellor/Property/Reboot.hs +++ b/src/Propellor/Property/Reboot.hs @@ -3,6 +3,7 @@ module Propellor.Property.Reboot ( atEnd, toDistroKernel, toKernelNewerThan, + KernelVersion, ) where import Propellor.Base @@ -11,6 +12,7 @@ import Data.List import Data.Version import Text.ParserCombinators.ReadP +-- | Kernel version number, in a string. type KernelVersion = String -- | Using this property causes an immediate reboot. @@ -129,11 +131,10 @@ extractKernelVersion :: String -> KernelVersion extractKernelVersion = unwords . take 1 . drop 1 . dropWhile (/= "version") . words --- adapted from Utility.PartialPrelude.readish readVersionMaybe :: KernelVersion -> Maybe Version -readVersionMaybe ver = case readP_to_S parseVersion ver of - ((x,_):_) -> Just x - _ -> Nothing +readVersionMaybe ver = case map fst $ readP_to_S parseVersion ver of + [] -> Nothing + l -> Just $ maximum l tryReadVersion :: KernelVersion -> Propellor Version tryReadVersion ver = case readVersionMaybe ver of -- cgit v1.2.3