summaryrefslogtreecommitdiff
path: root/src/Config.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Config.hs')
-rw-r--r--src/Config.hs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/Config.hs b/src/Config.hs
index 68db57d..13be619 100644
--- a/src/Config.hs
+++ b/src/Config.hs
@@ -85,17 +85,18 @@ parseJob name node = flip (withMap "Job") node $ \j -> do
jobUses <- maybe (return []) parseUses =<< j .:? "uses"
return Job {..}
-parseSingleCheckout :: Node Pos -> Parser [ Either JobCheckout ( JobRepo Declared, JobCheckout ) ]
+parseSingleCheckout :: Node Pos -> Parser [ Either JobCheckout ( JobRepo Declared, Maybe Text, JobCheckout ) ]
parseSingleCheckout = withMap "checkout definition" $ \m -> do
- mbName <- m .:? "repo"
jcSubtree <- fmap T.unpack <$> m .:? "subtree"
jcDestination <- fmap T.unpack <$> m .:? "dest"
let checkout = JobCheckout {..}
- return $ (: []) $ case mbName of
- Nothing -> Left checkout
- Just name -> Right ( DeclaredJobRepo (RepoName name), checkout )
+ m .:? "repo" >>= \case
+ Nothing -> return [ Left checkout ]
+ Just name -> do
+ revision <- m .:? "revision"
+ return [ Right ( DeclaredJobRepo (RepoName name), revision, checkout ) ]
-parseMultipleCheckouts :: Node Pos -> Parser [ Either JobCheckout ( JobRepo Declared, JobCheckout ) ]
+parseMultipleCheckouts :: Node Pos -> Parser [ Either JobCheckout ( JobRepo Declared, Maybe Text, JobCheckout ) ]
parseMultipleCheckouts = withSeq "checkout definitions" $ fmap concat . mapM parseSingleCheckout
cabalJob :: Node Pos -> Parser [CreateProcess]