diff options
Diffstat (limited to 'src/Daemon.hs')
-rw-r--r-- | src/Daemon.hs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Daemon.hs b/src/Daemon.hs new file mode 100644 index 0000000..1351ad5 --- /dev/null +++ b/src/Daemon.hs @@ -0,0 +1,18 @@ +module Daemon + ( runDaemon + ) where + +import Control.Concurrent (threadDelay) +import Control.Monad (forever) + +import Daemon.Frequency + +runDaemon :: Frequency -> (() -> IO ()) -> IO () +runDaemon frequency process = + forever $ do + process () + threadDelay (sleepDelayMs frequency) + +sleepDelayMs :: Frequency -> Int +sleepDelayMs Hourly = 1000000 * 60 * 60 +sleepDelayMs Daily = (sleepDelayMs Hourly) * 24 |