module Job.Types where import Control.Concurrent data Status = Idle | Working | Fail deriving (Eq, Show) data Job = Job { jobId :: String , name :: String , args :: [String] , matchExpr :: String , status :: Status , output :: String , thread :: Maybe ThreadId } data Jobs = Jobs [Job] createJob :: String -> String -> [String] -> String -> Job createJob jobId name args expr = Job jobId name args expr Idle "" Nothing createJobs :: [Job] -> Jobs createJobs = Jobs jobWithId :: Jobs -> String -> Job jobWithId (Jobs jobs) id = find jobs where find [] = error "gaaah" find (x:xs) | jobId x == id = x | otherwise = find xs fullName :: Job -> String fullName (Job { name = name, args = args }) = name ++ " " ++ unwords args