summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Reboot.hs
diff options
context:
space:
mode:
authorJoey Hess2016-06-13 19:25:01 -0400
committerJoey Hess2016-06-13 19:25:01 -0400
commit3893a43774eee2a01df19c15c6c59c6f6d358c29 (patch)
tree439c5fa8f4a6d4bb92349947d7a71ecf30d6c301 /src/Propellor/Property/Reboot.hs
parentcc9f62f8d67753b65705b9ab8396092477e083f1 (diff)
fix buggy readVersionMaybe
Diffstat (limited to 'src/Propellor/Property/Reboot.hs')
-rw-r--r--src/Propellor/Property/Reboot.hs9
1 files changed, 5 insertions, 4 deletions
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