diff options
author | 2017-08-17 12:26:14 -0400 | |
---|---|---|
committer | 2017-08-17 13:54:14 -0400 | |
commit | da0a1360d7b57d034620338996552752ab873045 (patch) | |
tree | 7cd5d994f15ae0d52e18321a129360b9e39a6d7d /Command/EnableRemote.hs | |
parent | 13ce429b5cbc3036e24613ce85e17af7acd9a480 (diff) |
add annex-ignore-command and annex-sync-command configs
Added remote configuration settings annex-ignore-command and
annex-sync-command, which are dynamic equivilants of the annex-ignore
and annex-sync configurations.
For this I needed a new DynamicConfig infrastructure. Its implementation
should be as fast as before when there is no dynamic config, and it caches
so shell commands are only run once.
Note that annex-ignore-command exits nonzero when the remote should be ignored.
While that may seem backwards, it allows using the same command for it as
for annex-sync-command when you want to disable both.
This commit was sponsored by Trenton Cronholm on Patreon.
Diffstat (limited to 'Command/EnableRemote.hs')
-rw-r--r-- | Command/EnableRemote.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Command/EnableRemote.hs b/Command/EnableRemote.hs index b9b53a69c..a2a26009e 100644 --- a/Command/EnableRemote.hs +++ b/Command/EnableRemote.hs @@ -20,6 +20,8 @@ import qualified Remote.Git import Logs.UUID import Annex.UUID import Config +import Config.DynamicConfig +import Types.GitConfig import qualified Data.Map as M @@ -76,7 +78,9 @@ startSpecialRemote name config (Just (u, c)) = do let fullconfig = config `M.union` c t <- either giveup return (Annex.SpecialRemote.findType fullconfig) showStart "enableremote" name - gc <- maybe def Remote.gitconfig <$> Remote.byUUID u + gc <- maybe (liftIO dummyRemoteGitConfig) + (return . Remote.gitconfig) + =<< Remote.byUUID u next $ performSpecialRemote t u fullconfig gc performSpecialRemote :: RemoteType -> UUID -> R.RemoteConfig -> RemoteGitConfig -> CommandPerform @@ -109,5 +113,6 @@ unknownNameError prefix = do where isdisabled r = anyM id [ (==) NoUUID <$> getRepoUUID r - , remoteAnnexIgnore <$> Annex.getRemoteGitConfig r + , liftIO . getDynamicConfig . remoteAnnexIgnore + =<< Annex.getRemoteGitConfig r ] |