summaryrefslogtreecommitdiff
path: root/src/Command
diff options
context:
space:
mode:
Diffstat (limited to 'src/Command')
-rw-r--r--src/Command/Extract.hs2
-rw-r--r--src/Command/JobId.hs2
-rw-r--r--src/Command/Log.hs2
-rw-r--r--src/Command/Run.hs19
4 files changed, 12 insertions, 13 deletions
diff --git a/src/Command/Extract.hs b/src/Command/Extract.hs
index 8a0a035..cc92587 100644
--- a/src/Command/Extract.hs
+++ b/src/Command/Extract.hs
@@ -78,7 +78,7 @@ cmdExtract (ExtractCommand ExtractOptions {..} ExtractArguments {..}) = do
_ -> return False
forM_ extractArtifacts $ \( ref, ArtifactName aname ) -> do
- jid@(JobId ids) <- either (tfail . textEvalError) (return . jobId) =<<
+ jid@(JobId ids) <- either (tfail . textEvalError) (return . jobId . fst) =<<
liftIO (runEval (evalJobReference ref) einput)
let jdir = joinPath $ (storageDir :) $ ("jobs" :) $ map (T.unpack . textJobIdPart) ids
diff --git a/src/Command/JobId.hs b/src/Command/JobId.hs
index 173f543..096ed56 100644
--- a/src/Command/JobId.hs
+++ b/src/Command/JobId.hs
@@ -52,7 +52,7 @@ cmdJobId :: JobIdCommand -> CommandExec ()
cmdJobId (JobIdCommand JobIdOptions {..} ref) = do
einput <- getEvalInput
out <- getOutput
- JobId ids <- either (tfail . textEvalError) (return . jobId) =<<
+ JobId ids <- either (tfail . textEvalError) (return . jobId . fst) =<<
liftIO (runEval (evalJobReference ref) einput)
outputMessage out $ textJobId $ JobId ids
diff --git a/src/Command/Log.hs b/src/Command/Log.hs
index 25bfc06..e48ce8f 100644
--- a/src/Command/Log.hs
+++ b/src/Command/Log.hs
@@ -37,7 +37,7 @@ instance Command LogCommand where
cmdLog :: LogCommand -> CommandExec ()
cmdLog (LogCommand ref) = do
einput <- getEvalInput
- jid <- either (tfail . textEvalError) (return . jobId) =<<
+ jid <- either (tfail . textEvalError) (return . jobId . fst) =<<
liftIO (runEval (evalJobReference ref) einput)
output <- getOutput
storageDir <- getStorageDir
diff --git a/src/Command/Run.hs b/src/Command/Run.hs
index ca6d275..a7e7eff 100644
--- a/src/Command/Run.hs
+++ b/src/Command/Run.hs
@@ -139,6 +139,7 @@ argumentJobSource names = do
Just commit -> (: []) <$> getCommitTree commit
Nothing -> return []
let cidPart = map (JobIdTree Nothing "" . treeId) jobtree
+ jobsetId = ()
jobsetJobsEither <- fmap Right $ forM names $ \name ->
case find ((name ==) . jobName) (configJobs config) of
Just job -> return job
@@ -151,22 +152,20 @@ refJobSource :: [ JobRef ] -> CommandExec JobSource
refJobSource [] = emptyJobSource
refJobSource refs = do
jobs <- foldl' addJobToList [] <$> cmdEvalWith id (mapM evalJobReference refs)
- oneshotJobSource . map (JobSet Nothing . Right . reverse) $ jobs
+ oneshotJobSource . map (\( sid, js ) -> JobSet sid Nothing (Right $ reverse js)) $ jobs
where
- deriveSetId :: Job -> [ JobIdPart ]
- deriveSetId job = let JobId parts = jobId job in init parts
-
- addJobToList :: [[ Job ]] -> Job -> [[ Job ]]
- addJobToList (js@(j : _) : rest) job
- | deriveSetId j == deriveSetId job = (job : js) : rest
- | otherwise = js : addJobToList rest job
- addJobToList _ job = [[ job ]]
+ addJobToList :: [ ( JobSetId, [ Job ] ) ] -> ( Job, JobSetId ) -> [ ( JobSetId, [ Job ] ) ]
+ addJobToList (( sid, js ) : rest ) ( job, jsid )
+ | sid == jsid = ( sid, job : js ) : rest
+ | otherwise = ( sid, js ) : addJobToList rest ( job, jsid )
+ addJobToList [] ( job, jsid ) = [ ( jsid, [ job ] ) ]
loadJobSetFromRoot :: (MonadIO m, MonadFail m) => JobRoot -> Commit -> m DeclaredJobSet
loadJobSetFromRoot root commit = case root of
JobRootRepo _ -> loadJobSetForCommit commit
JobRootConfig config -> return JobSet
- { jobsetCommit = Just commit
+ { jobsetId = ()
+ , jobsetCommit = Just commit
, jobsetJobsEither = Right $ configJobs config
}