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.hs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Job/Types.hs b/src/Job/Types.hs
new file mode 100644
index 0000000..6918738
--- /dev/null
+++ b/src/Job/Types.hs
@@ -0,0 +1,38 @@
+module Job.Types where
+
+import Data.Text (Text)
+import Data.Text qualified as T
+
+import System.Process
+
+import Repo
+
+
+data Job = Job
+ { jobName :: JobName
+ , jobRecipe :: [ CreateProcess ]
+ , jobArtifacts :: [ ( ArtifactName, CreateProcess ) ]
+ , jobUses :: [ ( JobName, ArtifactName ) ]
+ }
+
+data JobName = JobName Text
+ deriving (Eq, Ord, Show)
+
+stringJobName :: JobName -> String
+stringJobName (JobName name) = T.unpack name
+
+textJobName :: JobName -> Text
+textJobName (JobName name) = name
+
+
+data ArtifactName = ArtifactName Text
+ deriving (Eq, Ord, Show)
+
+
+data JobSet = JobSet
+ { jobsetCommit :: Commit
+ , jobsetJobsEither :: Either String [ Job ]
+ }
+
+jobsetJobs :: JobSet -> [ Job ]
+jobsetJobs = either (const []) id . jobsetJobsEither