summaryrefslogtreecommitdiff
path: root/src/Job/Types.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Job/Types.hs')
-rw-r--r--src/Job/Types.hs28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/Job/Types.hs b/src/Job/Types.hs
index 3f6f1f0..a16ba1d 100644
--- a/src/Job/Types.hs
+++ b/src/Job/Types.hs
@@ -8,14 +8,21 @@ import System.Process
import Repo
-data Job = Job
+data Declared
+data Evaluated
+
+data Job' d = Job
{ jobName :: JobName
- , jobCheckout :: [ ( Maybe RepoName, Maybe FilePath ) ]
+ , jobContainingCheckout :: [ JobCheckout ]
+ , jobOtherCheckout :: [ ( JobRepo d, JobCheckout ) ]
, jobRecipe :: [ CreateProcess ]
, jobArtifacts :: [ ( ArtifactName, CreateProcess ) ]
, jobUses :: [ ( JobName, ArtifactName ) ]
}
+type Job = Job' Evaluated
+type DeclaredJob = Job' Declared
+
data JobName = JobName Text
deriving (Eq, Ord, Show)
@@ -26,15 +33,28 @@ textJobName :: JobName -> Text
textJobName (JobName name) = name
+data JobRepo d where
+ DeclaredJobRepo :: RepoName -> JobRepo Declared
+ EvaluatedJobRepo :: Repo -> JobRepo Evaluated
+
+data JobCheckout = JobCheckout
+ { jcSubtree :: Maybe FilePath
+ , jcDestination :: Maybe FilePath
+ }
+
+
data ArtifactName = ArtifactName Text
deriving (Eq, Ord, Show)
-data JobSet = JobSet
+data JobSet' d = JobSet
{ jobsetCommit :: Maybe Commit
- , jobsetJobsEither :: Either String [ Job ]
+ , jobsetJobsEither :: Either String [ Job' d ]
}
+type JobSet = JobSet' Evaluated
+type DeclaredJobSet = JobSet' Declared
+
jobsetJobs :: JobSet -> [ Job ]
jobsetJobs = either (const []) id . jobsetJobsEither