add globallyAvailable to remotes
This commit is contained in:
parent
57e5960758
commit
449520a573
12 changed files with 23 additions and 4 deletions
|
@ -53,15 +53,18 @@ calcSyncRemotes = do
|
|||
let good r = Remote.uuid r `elem` alive
|
||||
let syncable = filter good rs
|
||||
let nonxmpp = filter (not . isXMPPRemote) syncable
|
||||
|
||||
liftIO $ print (nonxmpp, map Remote.globallyAvailable nonxmpp)
|
||||
|
||||
return $ \dstatus -> dstatus
|
||||
{ syncRemotes = syncable
|
||||
, syncGitRemotes =
|
||||
filter (not . Remote.specialRemote) syncable
|
||||
, syncDataRemotes = nonxmpp
|
||||
, syncingToCloudRemote =
|
||||
any (Git.repoIsUrl . Remote.repo) nonxmpp
|
||||
, syncingToCloudRemote = any iscloud nonxmpp
|
||||
}
|
||||
where
|
||||
iscloud r = not (Remote.readonly r) && Remote.globallyAvailable r
|
||||
|
||||
{- Updates the sycRemotes list from the list of all remotes in Annex state. -}
|
||||
updateSyncRemotes :: Assistant ()
|
||||
|
@ -69,6 +72,7 @@ updateSyncRemotes = do
|
|||
modifyDaemonStatus_ =<< liftAnnex calcSyncRemotes
|
||||
status <- getDaemonStatus
|
||||
liftIO $ sendNotification $ syncRemotesNotifier status
|
||||
|
||||
when (syncingToCloudRemote status) $
|
||||
updateAlertMap $
|
||||
M.filter $ \alert ->
|
||||
|
|
|
@ -293,7 +293,10 @@ checkCloudRepos :: UrlRenderer -> Remote -> Assistant ()
|
|||
-- TODO only display if needed
|
||||
checkCloudRepos urlrenderer r =
|
||||
#ifdef WITH_WEBAPP
|
||||
cloudRepoNeeded urlrenderer (Remote.uuid r)
|
||||
unlessM (syncingToCloudRemote <$> getDaemonStatus) $
|
||||
cloudRepoNeeded urlrenderer (Remote.uuid r)
|
||||
#else
|
||||
noop
|
||||
#endif
|
||||
|
||||
writeChunk :: Handle -> B.ByteString -> IO ()
|
||||
|
|
|
@ -67,6 +67,7 @@ gen r u c gc = do
|
|||
then Just buprepo
|
||||
else Nothing
|
||||
, remotetype = remote
|
||||
, globallyAvailable = not $ bupLocal buprepo
|
||||
, readonly = False
|
||||
}
|
||||
return $ encryptableRemote c
|
||||
|
|
|
@ -57,6 +57,7 @@ gen r u c gc = do
|
|||
gitconfig = gc,
|
||||
localpath = Just dir,
|
||||
readonly = False,
|
||||
globallyAvailable = False,
|
||||
remotetype = remote
|
||||
}
|
||||
where
|
||||
|
|
|
@ -111,6 +111,7 @@ gen r u _ gc = go <$> remoteCost gc defcst
|
|||
, repo = r
|
||||
, gitconfig = gc
|
||||
, readonly = Git.repoIsHttp r
|
||||
, globallyAvailable = not $ Git.repoIsLocal r || Git.repoIsLocalUnknown r
|
||||
, remotetype = remote
|
||||
}
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ gen r u c gc = new <$> remoteCost gc veryExpensiveRemoteCost
|
|||
gitconfig = gc,
|
||||
localpath = Nothing,
|
||||
readonly = False,
|
||||
globallyAvailable = True,
|
||||
remotetype = remote
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ gen r u c gc = do
|
|||
repo = r,
|
||||
gitconfig = gc,
|
||||
readonly = False,
|
||||
globallyAvailable = False,
|
||||
remotetype = remote
|
||||
}
|
||||
where
|
||||
|
|
|
@ -60,14 +60,16 @@ gen r u c gc = do
|
|||
, config = M.empty
|
||||
, repo = r
|
||||
, gitconfig = gc
|
||||
, localpath = if rsyncUrlIsPath $ rsyncUrl o
|
||||
, localpath = if islocal
|
||||
then Just $ rsyncUrl o
|
||||
else Nothing
|
||||
, readonly = False
|
||||
, globallyAvailable = not $ islocal
|
||||
, remotetype = remote
|
||||
}
|
||||
where
|
||||
o = RsyncOpts url opts escape
|
||||
islocal = rsyncUrlIsPath $ rsyncUrl o
|
||||
url = fromMaybe (error "missing rsyncurl") $ remoteAnnexRsyncUrl gc
|
||||
opts = map Param $ filter safe $ remoteAnnexRsyncOptions gc
|
||||
escape = M.lookup "shellescape" c /= Just "no"
|
||||
|
|
|
@ -62,6 +62,7 @@ gen r u c gc = new <$> remoteCost gc expensiveRemoteCost
|
|||
gitconfig = gc,
|
||||
localpath = Nothing,
|
||||
readonly = False,
|
||||
globallyAvailable = True,
|
||||
remotetype = remote
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@ gen r _ _ gc =
|
|||
localpath = Nothing,
|
||||
repo = r,
|
||||
readonly = True,
|
||||
globallyAvailable = True,
|
||||
remotetype = remote
|
||||
}
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ gen r u c gc = new <$> remoteCost gc expensiveRemoteCost
|
|||
gitconfig = gc,
|
||||
localpath = Nothing,
|
||||
readonly = False,
|
||||
globallyAvailable = True,
|
||||
remotetype = remote
|
||||
}
|
||||
|
||||
|
|
|
@ -74,6 +74,8 @@ data RemoteA a = Remote {
|
|||
localpath :: Maybe FilePath,
|
||||
-- a Remote can be known to be readonly
|
||||
readonly :: Bool,
|
||||
-- a Remote can be globally available. (Ie, "in the cloud".)
|
||||
globallyAvailable :: Bool,
|
||||
-- the type of the remote
|
||||
remotetype :: RemoteTypeA a
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue