From 265c7ae3c01f1fdfe2ad100bc0462480b7b0d575 Mon Sep 17 00:00:00 2001 From: Benjamin Koch <snowball@c3pb.de> Date: Sun, 13 Dec 2020 05:59:25 +0100 Subject: [PATCH] Restart failed script on click --- src/QBar/Blocks/Script.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/QBar/Blocks/Script.hs b/src/QBar/Blocks/Script.hs index 0f2f661..9f8811f 100644 --- a/src/QBar/Blocks/Script.hs +++ b/src/QBar/Blocks/Script.hs @@ -7,6 +7,7 @@ import QBar.TagParser import QBar.Time import Control.Exception (IOException) +import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar) import Data.Aeson (encode) import qualified Data.ByteString.Lazy.Char8 as C8 import qualified Data.Text.Lazy as T @@ -44,7 +45,12 @@ scriptBlock clickEvents path = catchP startScriptProcess (handleError Nothing) where handleError :: Maybe ExitCode -> IOException -> Block handleError exitCode exc = case result of - Left msg -> forever $ pushBlockUpdate $ mkErrorOutput msg + Left msg -> do + signal <- liftIO newEmptyMVar + pushBlockUpdate' (const $ liftIO $ putMVar signal ()) $ + mkErrorOutput msg + liftIO $ takeMVar signal + startScriptProcess Right x -> x where result = case (isEOFError exc, exitCode) of -- GitLab