avoid using MonadFail in ParseDuration
There's no instance for Either String, so that makes it not as useful as it could be, so instead just return an Either String.
This commit is contained in:
parent
ad64079b44
commit
4c58433c48
7 changed files with 13 additions and 15 deletions
|
@ -177,7 +177,7 @@ extractGitConfig configsource r = GitConfig
|
|||
, annexFsckNudge = getbool (annexConfig "fscknudge") True
|
||||
, annexAutoUpgrade = toAutoUpgrade $
|
||||
getmaybe (annexConfig "autoupgrade")
|
||||
, annexExpireUnused = maybe Nothing Just . parseDuration
|
||||
, annexExpireUnused = either (const Nothing) Just . parseDuration
|
||||
<$> getmaybe (annexConfig "expireunused")
|
||||
, annexSecureEraseCommand = getmaybe (annexConfig "secure-erase-command")
|
||||
, annexGenMetaData = getbool (annexConfig "genmetadata") False
|
||||
|
|
|
@ -46,16 +46,15 @@ parseScheduledActivity :: String -> Either String ScheduledActivity
|
|||
parseScheduledActivity s = case words s of
|
||||
("fsck":"self":d:rest) -> qualified $ ScheduledSelfFsck
|
||||
<$> parseSchedule (unwords rest)
|
||||
<*> getduration d
|
||||
<*> parseDuration d
|
||||
("fsck":u:d:rest) -> qualified $ ScheduledRemoteFsck
|
||||
<$> pure (toUUID u)
|
||||
<*> parseSchedule (unwords rest)
|
||||
<*> getduration d
|
||||
<*> parseDuration d
|
||||
_ -> qualified $ Left "unknown activity"
|
||||
where
|
||||
qualified (Left e) = Left $ e ++ " in \"" ++ s ++ "\""
|
||||
qualified v = v
|
||||
getduration d = maybe (Left $ "failed to parse duration \""++d++"\"") Right (parseDuration d)
|
||||
|
||||
fromScheduledActivities :: [ScheduledActivity] -> String
|
||||
fromScheduledActivities = intercalate "; " . map fromScheduledActivity
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue