summaryrefslogtreecommitdiff
path: root/src/Command.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-04-11 20:25:15 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-04-11 20:25:15 +0200
commitd6c4daa2fb0b7f8dd0afb3ef50b2b85106bfd2ac (patch)
treea204b588dcd58f5da0f851024f80ed9179b7d6bd /src/Command.hs
parent75f57ad0287c8aa1a217ec90cbc8533cc3b8d799 (diff)
Evaluate job and jobset in the Eval monad
Diffstat (limited to 'src/Command.hs')
-rw-r--r--src/Command.hs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Command.hs b/src/Command.hs
index 6fb7e90..6322818 100644
--- a/src/Command.hs
+++ b/src/Command.hs
@@ -11,7 +11,7 @@ module Command (
getCommonOptions,
getRootPath, getJobRoot,
getRepo, getDefaultRepo, tryGetDefaultRepo,
- getEvalInput,
+ getEvalInput, cmdEvalWith,
getTerminalOutput,
getStorageDir,
) where
@@ -139,6 +139,10 @@ getEvalInput = CommandExec $ do
eiOtherRepos <- asks ciOtherRepos
return EvalInput {..}
+cmdEvalWith :: (EvalInput -> EvalInput) -> Eval a -> CommandExec a
+cmdEvalWith f ev = do
+ either (tfail . textEvalError) return =<< liftIO .runEval ev . f =<< getEvalInput
+
getTerminalOutput :: CommandExec TerminalOutput
getTerminalOutput = CommandExec (asks ciTerminalOutput)