From 60ab3d84e188b8dd3a284d962df25bbee41ff1cb Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 14 Mar 2012 17:43:34 -0400 Subject: added ifM and nuked 11 lines of code no behavior changes --- Remote.hs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'Remote.hs') diff --git a/Remote.hs b/Remote.hs index b3f464f5c..aac45fae9 100644 --- a/Remote.hs +++ b/Remote.hs @@ -70,19 +70,13 @@ addName desc n - (Or it can be a UUID.) Only finds currently configured git remotes. -} byName :: Maybe String -> Annex (Maybe Remote) byName Nothing = return Nothing -byName (Just n) = do - res <- byName' n - case res of - Left e -> error e - Right r -> return $ Just r +byName (Just n) = either error Just <$> byName' n byName' :: String -> Annex (Either String Remote) byName' "" = return $ Left "no remote specified" -byName' n = do - match <- filter matching <$> remoteList - if null match - then return $ Left $ "there is no git remote named \"" ++ n ++ "\"" - else return $ Right $ Prelude.head match +byName' n = handle . filter matching <$> remoteList where + handle [] = Left $ "there is no git remote named \"" ++ n ++ "\"" + handle match = Right $ Prelude.head match matching r = n == name r || toUUID n == uuid r {- Looks up a remote by name (or by UUID, or even by description), -- cgit v1.2.3