diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-09-11 21:20:46 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-09-13 15:05:42 +0200 |
| commit | a589e61c2b807196696632eb17e8ad573daa9c08 (patch) | |
| tree | 254b6eb0c5a31de0cc94380ebdc00489ba54d010 /src/Command/Run.hs | |
| parent | 73a141316db78b942160b11bdb3c92208f3eddd6 (diff) | |
Use colon as preferred job ID separator
Changelog: Colon `:` is now accepted and preferred as job ID separator.
Diffstat (limited to 'src/Command/Run.hs')
| -rw-r--r-- | src/Command/Run.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Command/Run.hs b/src/Command/Run.hs index ccd4bfa..6419c58 100644 --- a/src/Command/Run.hs +++ b/src/Command/Run.hs @@ -10,6 +10,7 @@ import Control.Monad.IO.Class import Data.Char import Data.Containers.ListUtils +import Data.Either import Data.List import Data.Maybe import Data.Text (Text) @@ -314,10 +315,14 @@ cmdRun (RunCommand RunOptions {..} args) = do ] let ( nameOptions, jobOptions ) = partition (T.all $ \c -> isAlphaNum c || c == '_') args - ( refOptions, exprOptions ) = partition (\r -> "." `T.isInfixOf` r && not (".." `T.isInfixOf` r)) jobOptions + ( refOptions, exprOptions ) = partitionEithers $ map splitRefs jobOptions + splitRefs t = case parseJobRef t of + JobRef [ e ] -> Right e + JobRef [ e, "" ] -> Right e + ref -> Left ref argumentJobs <- argumentJobSource $ map JobName nameOptions - refJobs <- refJobSource $ map parseJobRef refOptions + refJobs <- refJobSource refOptions exprJobs <- forM exprOptions $ \trange -> case parseRangeExpression trange of |