From 9f7a68a51376e5897c63038328f3a36caaf62e4e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 14 Sep 2015 15:34:15 -0400 Subject: avoid auto-enabling a remote that's already enabled --- Annex/SpecialRemote.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Annex') diff --git a/Annex/SpecialRemote.hs b/Annex/SpecialRemote.hs index 4a07ebbc7..44bc666ce 100644 --- a/Annex/SpecialRemote.hs +++ b/Annex/SpecialRemote.hs @@ -8,7 +8,7 @@ module Annex.SpecialRemote where import Common.Annex -import Remote (remoteTypes) +import Remote (remoteTypes, remoteMap) import Types.Remote (RemoteConfig, RemoteConfigKey, typename, setup) import Logs.Remote import Logs.Trust @@ -70,10 +70,11 @@ autoEnableKey = "autoenable" autoEnable :: Annex () autoEnable = do - remotemap <- M.filter wanted <$> readRemoteLog - forM_ (M.toList remotemap) $ \(u, c) -> + remotemap <- M.filter configured <$> readRemoteLog + enabled <- remoteMap id + forM_ (M.toList remotemap) $ \(u, c) -> unless (u `M.member` enabled) $ do case (M.lookup nameKey c, findType c) of - (Just name, Right t) -> unlessM ((== DeadTrusted) <$> lookupTrust u) $ do + (Just name, Right t) -> whenM (canenable u) $ do showSideAction $ "Auto enabling special remote " ++ name res <- tryNonAsync $ setup t (Just u) Nothing c case res of @@ -81,5 +82,6 @@ autoEnable = do Right _ -> return () _ -> return () where - wanted rc = fromMaybe False $ + configured rc = fromMaybe False $ Git.Config.isTrue =<< M.lookup autoEnableKey rc + canenable u = (/= DeadTrusted) <$> lookupTrust u -- cgit v1.2.3