From 70e600346fb5875defe14d578883c9838695d533 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 9 Mar 2017 17:04:50 +0100 Subject: Make failing startup scripts nonfatal --- trivmix.cabal | 2 +- trivmix.nix | 2 +- trivmix/Trivmix.hs | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/trivmix.cabal b/trivmix.cabal index 130680d..6ce861a 100644 --- a/trivmix.cabal +++ b/trivmix.cabal @@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: trivmix -version: 2.7.1 +version: 2.7.3 -- synopsis: -- description: license: PublicDomain diff --git a/trivmix.nix b/trivmix.nix index 88df3fe..734fb36 100644 --- a/trivmix.nix +++ b/trivmix.nix @@ -4,7 +4,7 @@ }: mkDerivation { pname = "trivmix"; - version = "2.7.1"; + version = "2.7.3"; src = ./.; isLibrary = true; isExecutable = true; diff --git a/trivmix/Trivmix.hs b/trivmix/Trivmix.hs index cf9587f..fdd94b4 100644 --- a/trivmix/Trivmix.hs +++ b/trivmix/Trivmix.hs @@ -26,6 +26,7 @@ import qualified Control.Monad.Exception.Synchronous as Sync import Control.Exception import System.IO.Error import System.IO +import System.Exit import System.FileLock import System.INotify @@ -136,11 +137,12 @@ trivmix Options{..} = do Jack.handleExceptions $ Jack.withClientDefault client $ \client' -> Jack.withPort client' input $ \input' -> - Jack.withPort client' output $ \output' -> do - Trans.lift $ do - mapM_ (flip callProcess [client ++ ":" ++ input, client ++ ":" ++ output]) run - Audio.withProcessMono client' input' (mix level') output' $ - Jack.withActivation client' . forever . Trans.lift $ threadDelay 1000000 + Jack.withPort client' output $ \output' -> + Audio.withProcessMono client' input' (mix level') output' $ + Jack.withActivation client' . Trans.lift $ do + forM_ run $ \script -> + (callProcess script [client ++ ":" ++ input, client ++ ":" ++ output]) `catch` (\code -> hPutStrLn stderr $ script ++ " failed: " ++ show (code :: ExitCode)) + forever $ threadDelay 1000000 mix :: MVar Level -> CFloat -> IO CFloat mix level input = do -- cgit v1.2.3