diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-05-24 15:48:22 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-05-24 15:58:27 -0400 |
commit | 475d3dbf61a111e7ad7edfbc53df9af60b62bdb5 (patch) | |
tree | 08f8a5aa9a0f7d7f80b835c3bf6bb0f262697bcb /Command/EnableRemote.hs | |
parent | ba3bc0d631702ce91f1044985f2c3f533fb4f95d (diff) |
enableremote: Remove annex-ignore configuration from a remote.
Diffstat (limited to 'Command/EnableRemote.hs')
-rw-r--r-- | Command/EnableRemote.hs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/Command/EnableRemote.hs b/Command/EnableRemote.hs index bf0ad37a3..dc3e7bc56 100644 --- a/Command/EnableRemote.hs +++ b/Command/EnableRemote.hs @@ -11,13 +11,14 @@ import Command import qualified Annex import qualified Logs.Remote import qualified Types.Remote as R -import qualified Git.Types as Git +import qualified Git import qualified Annex.SpecialRemote import qualified Remote import qualified Types.Remote as Remote import qualified Remote.Git import Logs.UUID import Annex.UUID +import Config import qualified Data.Map as M @@ -45,9 +46,10 @@ startNormalRemote :: RemoteName -> Git.Repo -> CommandStart startNormalRemote name r = do showStart "enableremote" name next $ next $ do + setRemoteIgnore r False r' <- Remote.Git.configRead False r u <- getRepoUUID r' - return (u /= NoUUID) + return $ u /= NoUUID startSpecialRemote :: RemoteName -> Remote.RemoteConfig -> Maybe (UUID, Remote.RemoteConfig) -> CommandStart startSpecialRemote name config Nothing = do @@ -74,6 +76,10 @@ performSpecialRemote t u c gc = do cleanupSpecialRemote :: UUID -> R.RemoteConfig -> CommandCleanup cleanupSpecialRemote u c = do Logs.Remote.configSet u c + mr <- Remote.byUUID u + case mr of + Nothing -> noop + Just r -> setRemoteIgnore (R.repo r) False return True unknownNameError :: String -> Annex a @@ -85,8 +91,12 @@ unknownNameError prefix = do else Remote.prettyPrintUUIDsDescs "known special remotes" descm (M.keys m) - nouuids <- filterM (\r -> (==) NoUUID <$> getRepoUUID r) - =<< Annex.fromRepo Git.remotes - let nouuidmsg = unlines $ map ("\t" ++) $ - mapMaybe Git.remoteName nouuids - error $ concat $ filter (not . null) [prefix ++ "\n", nouuidmsg, specialmsg] + disabledremotes <- filterM isdisabled =<< Annex.fromRepo Git.remotes + let remotesmsg = unlines $ map ("\t" ++) $ + mapMaybe Git.remoteName disabledremotes + error $ concat $ filter (not . null) [prefix ++ "\n", remotesmsg, specialmsg] + where + isdisabled r = anyM id + [ (==) NoUUID <$> getRepoUUID r + , remoteAnnexIgnore <$> Annex.getRemoteGitConfig r + ] |