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.
This commit is contained in:
parent
86428f6261
commit
d39c120afa
21 changed files with 201 additions and 92 deletions
|
@ -44,6 +44,7 @@ import Annex.UUID
|
|||
import Assistant.Ssh
|
||||
import Config
|
||||
import Config.GitConfig
|
||||
import Config.DynamicConfig
|
||||
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Map as M
|
||||
|
@ -76,7 +77,7 @@ getRepoConfig uuid mremote = do
|
|||
description <- fmap T.pack . M.lookup uuid <$> uuidMap
|
||||
|
||||
syncable <- case mremote of
|
||||
Just r -> return $ remoteAnnexSync $ Remote.gitconfig r
|
||||
Just r -> liftIO $ getDynamicConfig $ remoteAnnexSync $ Remote.gitconfig r
|
||||
Nothing -> getGitConfigVal annexAutoCommit
|
||||
|
||||
return $ RepoConfig
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue