From 536273a9d980cf3e71d8d05813e18b3ebcaf9233 Mon Sep 17 00:00:00 2001 From: Jochen Keil Date: Wed, 8 Aug 2012 20:02:43 +0200 Subject: Extend the interface so that plugins can send signals Also: realign methods to look pretty again. --- src/Commands.hs | 4 ++++ src/Runnable.hs | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Commands.hs b/src/Commands.hs index 1bfbb94..f31c53c 100644 --- a/src/Commands.hs +++ b/src/Commands.hs @@ -30,6 +30,8 @@ import Data.Char import System.Process import System.Exit import System.IO (hClose) + +import Signal import XUtil class Show e => Exec e where @@ -42,6 +44,8 @@ class Show e => Exec e where start :: e -> (String -> IO ()) -> IO () start e cb = go where go = run e >>= cb >> tenthSeconds (rate e) >> go + trigger :: e -> (Maybe SignalType -> IO ()) -> IO () + trigger _ sh = sh Nothing data Command = Com Program Args Alias Rate deriving (Show,Read,Eq) diff --git a/src/Runnable.hs b/src/Runnable.hs index 56fedb3..84d9b77 100644 --- a/src/Runnable.hs +++ b/src/Runnable.hs @@ -29,8 +29,9 @@ import Commands data Runnable = forall r . (Exec r, Read r, Show r) => Run r instance Exec Runnable where - start (Run a) = start a - alias (Run a) = alias a + start (Run a) = start a + alias (Run a) = alias a + trigger (Run a) = trigger a instance Show Runnable where show (Run x) = show x -- cgit v1.2.3