diff options
author | Joey Hess <joey@kitenet.net> | 2013-01-01 13:52:47 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-01-01 13:58:14 -0400 |
commit | 18a3a186e9cdb69ee503d961d8285a341d818c48 (patch) | |
tree | d415a97f6c65e2268c948c6c2425d1b94b16df92 /Remote/List.hs | |
parent | b6e3e7516dfdc054b9e1a281b2e49b392d235ee2 (diff) |
type based git config handling for remotes
Still a couple of places that use git config ad-hoc, but this is most of it
done.
Diffstat (limited to 'Remote/List.hs')
-rw-r--r-- | Remote/List.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Remote/List.hs b/Remote/List.hs index 4622f1e99..1cfbab872 100644 --- a/Remote/List.hs +++ b/Remote/List.hs @@ -15,8 +15,8 @@ import Common.Annex import qualified Annex import Logs.Remote import Types.Remote +import Types.GitConfig import Annex.UUID -import Config import Remote.Helper.Hooks import qualified Git import qualified Git.Config @@ -81,7 +81,10 @@ remoteListRefresh = do remoteGen :: (M.Map UUID RemoteConfig) -> RemoteType -> Git.Repo -> Annex Remote remoteGen m t r = do u <- getRepoUUID r - addHooks =<< generate t r u (fromMaybe M.empty $ M.lookup u m) + g <- fromRepo id + let gc = extractRemoteGitConfig g (Git.repoDescribe r) + let c = fromMaybe M.empty $ M.lookup u m + addHooks <$> generate t r u c gc {- Updates a local git Remote, re-reading its git config. -} updateRemote :: Remote -> Annex Remote @@ -97,7 +100,7 @@ updateRemote remote = do {- All remotes that are not ignored. -} enabledRemoteList :: Annex [Remote] -enabledRemoteList = filterM (repoNotIgnored . repo) =<< remoteList +enabledRemoteList = filter (not . remoteAnnexIgnore . gitconfig) <$> remoteList {- Checks if a remote is a special remote -} specialRemote :: Remote -> Bool |