diff options
author | Joey Hess <joey@kitenet.net> | 2012-09-06 13:56:23 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-09-06 13:56:23 -0400 |
commit | d11ded822cf68d4f33a886e0f97f95a3781e0dc1 (patch) | |
tree | bf01cb30263bb7e9d2333ecb9aa5117a797a0334 /Assistant | |
parent | ec23eeb9eb273438a59f287f9252e7b1af987fc9 (diff) |
display alert for inotify/kqueue errors
Diffstat (limited to 'Assistant')
-rw-r--r-- | Assistant/Alert.hs | 16 | ||||
-rw-r--r-- | Assistant/Threads/Watcher.hs | 5 |
2 files changed, 18 insertions, 3 deletions
diff --git a/Assistant/Alert.hs b/Assistant/Alert.hs index 4c4906ef5..296f992bd 100644 --- a/Assistant/Alert.hs +++ b/Assistant/Alert.hs @@ -27,7 +27,7 @@ data AlertPriority = Filler | Low | Medium | High | Pinned {- An alert can have an name, which is used to combine it with other similar - alerts. -} -data AlertName = FileAlert TenseChunk | DownloadFailedAlert | SanityCheckFixAlert +data AlertName = FileAlert TenseChunk | SanityCheckFixAlert | WarningAlert String deriving (Eq) {- The first alert is the new alert, the second is an old alert. @@ -180,6 +180,20 @@ baseActivityAlert = Alert , alertName = Nothing } +warningAlert :: String -> String -> Alert +warningAlert name msg = Alert + { alertClass = Warning + , alertHeader = Just $ tenseWords ["warning"] + , alertMessageRender = tenseWords + , alertData = [UnTensed $ T.pack msg] + , alertBlockDisplay = True + , alertClosable = True + , alertPriority = High + , alertIcon = Just "exclamation-sign" + , alertCombiner = Just $ dataCombiner (++) + , alertName = Just $ WarningAlert name + } + activityAlert :: Maybe TenseText -> [TenseChunk] -> Alert activityAlert header dat = baseActivityAlert { alertHeader = header diff --git a/Assistant/Threads/Watcher.hs b/Assistant/Threads/Watcher.hs index 8ba015b19..89cc98fa4 100644 --- a/Assistant/Threads/Watcher.hs +++ b/Assistant/Threads/Watcher.hs @@ -235,10 +235,11 @@ onDelDir threadname dir _ _dstatus _ = do [Params "--quiet -r --cached --ignore-unmatch --"] [dir] madeChange dir RmDirChange -{- Called when there's an error with inotify. -} +{- Called when there's an error with inotify or kqueue. -} onErr :: Handler -onErr _ msg _ _dstatus _ = do +onErr _ msg _ dstatus _ = do warning msg + void $ liftIO $ addAlert dstatus $ warningAlert "watcher" msg return Nothing {- Adds a symlink to the index, without ever accessing the actual symlink |