diff options
author | Joey Hess <joey@kitenet.net> | 2013-03-18 23:05:23 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-03-18 23:15:48 -0400 |
commit | b5ca4df9ecf906e6640be362708face2215b5469 (patch) | |
tree | 463769f3ede4893622f1a735c50f6c18c163c846 /Assistant | |
parent | 154b11d6b1900b7104809810bee2d611b2993d42 (diff) |
new alert while scanning
Like the old one, but does not mention which remotes are scanned.
I think this is less confusing, as it does not imply the remotes
were somehow accessed (which they are not; inaccessible remotes
can be scanned.)
Diffstat (limited to 'Assistant')
-rw-r--r-- | Assistant/Alert.hs | 7 | ||||
-rw-r--r-- | Assistant/Threads/TransferScanner.hs | 17 |
2 files changed, 17 insertions, 7 deletions
diff --git a/Assistant/Alert.hs b/Assistant/Alert.hs index 206694031..25ddaf3ce 100644 --- a/Assistant/Alert.hs +++ b/Assistant/Alert.hs @@ -240,6 +240,13 @@ commitAlert = activityAlert Nothing showRemotes :: [Remote] -> TenseChunk showRemotes = UnTensed . T.intercalate ", " . map (T.pack . Remote.name) +scanAlert :: Alert +scanAlert = baseActivityAlert + { alertHeader = Just $ + tenseWords [Tensed "Scanning" "Scanned", "for file transfers"] + , alertPriority = Low + } + syncAlert :: [Remote] -> Alert syncAlert rs = baseActivityAlert { alertName = Just SyncAlert diff --git a/Assistant/Threads/TransferScanner.hs b/Assistant/Threads/TransferScanner.hs index d328ba197..28490e4e4 100644 --- a/Assistant/Threads/TransferScanner.hs +++ b/Assistant/Threads/TransferScanner.hs @@ -14,6 +14,7 @@ import Assistant.TransferQueue import Assistant.DaemonStatus import Assistant.Drop import Assistant.Sync +import Assistant.Alert import Logs.Transfer import Logs.Location import Logs.Web (webUUID) @@ -38,13 +39,15 @@ transferScannerThread = namedThread "TransferScanner" $ do go scanned = do liftIO $ threadDelaySeconds (Seconds 2) (rs, infos) <- unzip <$> getScanRemote - if any fullScan infos || any (`S.notMember` scanned) rs - then do - expensiveScan rs - go $ scanned `S.union` S.fromList rs - else do - mapM_ failedTransferScan rs - go scanned + void $ alertWhile scanAlert $ do + if any fullScan infos || any (`S.notMember` scanned) rs + then do + expensiveScan rs + go $ scanned `S.union` S.fromList rs + else do + mapM_ failedTransferScan rs + go scanned + return True {- All git remotes are synced, and all available remotes - are scanned in full on startup, for multiple reasons, including: - |