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)