packages feed

codemonitor-0.1: src/Config.hs

module Config where

import Job
import Monitor

create :: FilePath -> IO (String, Jobs, [Monitor])
create configPath = do
    content <- readFile configPath
    let (watchDir:rest) = lines content
    let jobs = map jobDefToJob rest
    let monitors = map jobToMonitor jobs
    return (watchDir, createJobs jobs, monitors)

jobDefToJob :: String -> Job
jobDefToJob def =
    let (id:pattern:command:args) = words def
    in processJob id command args pattern

jobToMonitor job = JobMonitor (jobId job) 0 (fullName job) (status job)