diff options
author | 2012-02-25 19:15:29 -0400 | |
---|---|---|
committer | 2012-02-25 19:15:29 -0400 | |
commit | 12b89a3eb81fdac92ec3ea9633bbd9a7d6a72adb (patch) | |
tree | ea35600752cf95dab1522257ee722d29b39fee27 /Git.hs | |
parent | c3fbe07d7ad03944d0967ebfa2b8f65cbc2ad5dc (diff) |
configure: Check if ssh connection caching is supported by the installed version of ssh and default annex.sshcaching accordingly.
Diffstat (limited to 'Git.hs')
-rw-r--r-- | Git.hs | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -85,7 +85,8 @@ assertLocal repo action = else error $ "acting on non-local git repo " ++ repoDescribe repo ++ " not supported" configBare :: Repo -> Bool -configBare repo = maybe unknown configTrue $ M.lookup "core.bare" $ config repo +configBare repo = maybe unknown (fromMaybe False . configTrue) $ + M.lookup "core.bare" $ config repo where unknown = error $ "it is not known if git repo " ++ repoDescribe repo ++ @@ -112,5 +113,10 @@ workTree Repo { location = Dir d } = d workTree Repo { location = Unknown } = undefined {- Checks if a string from git config is a true value. -} -configTrue :: String -> Bool -configTrue s = map toLower s == "true" +configTrue :: String -> Maybe Bool +configTrue s + | s' == "true" = Just True + | s' == "false" = Just False + | otherwise = Nothing + where + s' = map toLower s |