summaryrefslogtreecommitdiff
path: root/Assistant/DaemonStatus.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-04-22 14:57:09 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-04-22 14:57:09 -0400
commit8655ea7f8e853b7de4defbca2655b741362ecd21 (patch)
tree685b461a9e6471dbf403bb281d4382661a36d245 /Assistant/DaemonStatus.hs
parent032c802d45c7872f704de1faf0733740b256444d (diff)
sync, assistant: Sync with remotes that have annex-ignore set
This is so git remotes on servers without git-annex installed can be used to keep clients' git repos in sync. This is a behavior change, but since annex-sync can be set to disable syncing with a remote, I think it's acceptable.
Diffstat (limited to 'Assistant/DaemonStatus.hs')
-rw-r--r--Assistant/DaemonStatus.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/Assistant/DaemonStatus.hs b/Assistant/DaemonStatus.hs
index c966fc93a..f94521117 100644
--- a/Assistant/DaemonStatus.hs
+++ b/Assistant/DaemonStatus.hs
@@ -48,18 +48,19 @@ modifyDaemonStatus a = do
calcSyncRemotes :: Annex (DaemonStatus -> DaemonStatus)
calcSyncRemotes = do
rs <- filter (remoteAnnexSync . Remote.gitconfig) .
- concat . Remote.byCost <$> Remote.enabledRemoteList
+ concat . Remote.byCost <$> Remote.remoteList
alive <- trustExclude DeadTrusted (map Remote.uuid rs)
let good r = Remote.uuid r `elem` alive
let syncable = filter good rs
- let nonxmpp = filter (not . isXMPPRemote) syncable
+ let syncdata = filter (not . remoteAnnexIgnore . Remote.gitconfig) $
+ filter (not . isXMPPRemote) syncable
return $ \dstatus -> dstatus
{ syncRemotes = syncable
, syncGitRemotes =
filter (not . Remote.specialRemote) syncable
- , syncDataRemotes = nonxmpp
- , syncingToCloudRemote = any iscloud nonxmpp
+ , syncDataRemotes = syncdata
+ , syncingToCloudRemote = any iscloud syncdata
}
where
iscloud r = not (Remote.readonly r) && Remote.globallyAvailable r