aboutsummaryrefslogtreecommitdiff
path: root/Command/EnableRemote.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-05-24 15:48:22 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-05-24 15:58:27 -0400
commit475d3dbf61a111e7ad7edfbc53df9af60b62bdb5 (patch)
tree08f8a5aa9a0f7d7f80b835c3bf6bb0f262697bcb /Command/EnableRemote.hs
parentba3bc0d631702ce91f1044985f2c3f533fb4f95d (diff)
enableremote: Remove annex-ignore configuration from a remote.
Diffstat (limited to 'Command/EnableRemote.hs')
-rw-r--r--Command/EnableRemote.hs24
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
+ ]