first pass at assistant knowing about export remotes
Split exportRemotes out from syncDataRemotes; the parts of the assistant that upload keys and drop keys from remotes don't apply to exports, because those operations are not supported. Some parts of the assistant and webapp do operate on both syncDataRemotes and exportRemotes. Particularly when downloading from either of them. Added a downloadRemotes that combines both. With this, the assistant should download from exports, but it won't yet upload changes to them. This commit was sponsored by Fernando Jimenez on Patreon.
This commit is contained in:
parent
28eba8e9c6
commit
46d19648ee
6 changed files with 40 additions and 26 deletions
|
@ -20,6 +20,7 @@ import Logs.TimeStamp
|
|||
import qualified Remote
|
||||
import qualified Types.Remote as Remote
|
||||
import Config.DynamicConfig
|
||||
import Annex.Export
|
||||
|
||||
import Control.Concurrent.STM
|
||||
import System.Posix.Types
|
||||
|
@ -53,15 +54,18 @@ calcSyncRemotes = do
|
|||
alive <- trustExclude DeadTrusted (map Remote.uuid rs)
|
||||
let good r = Remote.uuid r `elem` alive
|
||||
let syncable = filter good rs
|
||||
syncdata <- filterM (not <$$> liftIO . getDynamicConfig . remoteAnnexIgnore . Remote.gitconfig) $
|
||||
contentremotes <- filterM (not <$$> liftIO . getDynamicConfig . remoteAnnexIgnore . Remote.gitconfig) $
|
||||
filter (\r -> Remote.uuid r /= NoUUID) $
|
||||
filter (not . Remote.isXMPPRemote) syncable
|
||||
let (exportremotes, dataremotes) = partition (exportTree . Remote.config) contentremotes
|
||||
|
||||
return $ \dstatus -> dstatus
|
||||
{ syncRemotes = syncable
|
||||
, syncGitRemotes = filter Remote.gitSyncableRemote syncable
|
||||
, syncDataRemotes = syncdata
|
||||
, syncingToCloudRemote = any iscloud syncdata
|
||||
, syncDataRemotes = dataremotes
|
||||
, exportRemotes = exportremotes
|
||||
, downloadRemotes = contentremotes
|
||||
, syncingToCloudRemote = any iscloud contentremotes
|
||||
}
|
||||
where
|
||||
iscloud r = not (Remote.readonly r) && Remote.availability r == Remote.GloballyAvailable
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue