avoid some read

This commit is contained in:
Joey Hess 2011-12-09 18:57:09 -04:00
parent 28699c95a7
commit 4b3c4c0c2b
3 changed files with 9 additions and 4 deletions

View file

@ -79,9 +79,10 @@ repoNotIgnored r = not . Git.configTrue <$> getConfig r "ignore" "false"
{- If a value is specified, it is used; otherwise the default is looked up
- in git config. forcenumcopies overrides everything. -}
getNumCopies :: Maybe Int -> Annex Int
getNumCopies v =
Annex.getState Annex.forcenumcopies >>= maybe (use v) (return . id)
getNumCopies v = perhaps (use v) =<< Annex.getState Annex.forcenumcopies
where
use (Just n) = return n
use Nothing = read <$> fromRepo (Git.configGet config "1")
use Nothing = perhaps (return 1) =<<
readMaybe <$> fromRepo (Git.configGet config "1")
perhaps fallback = maybe fallback (return . id)
config = "annex.numcopies"

2
Git.hs
View file

@ -345,7 +345,7 @@ urlPort :: Repo -> Maybe Integer
urlPort r =
case urlAuthPart uriPort r of
":" -> Nothing
(':':p) -> Just (read p)
(':':p) -> readMaybe p
_ -> Nothing
{- Hostname of an URL repo, including any username (ie, "user@host") -}

View file

@ -22,3 +22,7 @@ init = Prelude.init
{- last too -}
last :: [a] -> a
last = Prelude.last
{- read should be avoided, as it throws an error -}
read :: Read a => String -> a
read = Prelude.read