module Command.Run ( RunCommand, ) where import Control.Concurrent import Control.Concurrent.STM import Control.Exception import Control.Monad import Control.Monad.Reader import Data.List import Data.Text (Text) import Data.Text qualified as T import Data.Text.IO qualified as T import System.Console.GetOpt import System.Directory import System.Exit import System.FilePath import System.FilePath.Glob import System.IO import System.Process import Command import Config import Job import Repo import Terminal data RunCommand = RunCommand RunOptions [ Text ] data RunOptions = RunOptions { roRanges :: [ Text ] , roNewCommitsOn :: [ Text ] , roNewTags :: [ Pattern ] } instance Command RunCommand where commandName _ = "run" commandDescription _ = "Execude jobs per minici.yaml for given commits" type CommandArguments RunCommand = [ Text ] commandUsage _ = T.pack $ unlines $ [ "Usage: minici run" , " run jobs for commits on current branch not yet in upstream branch" , " or: minici run " , " run jobs for commits on not yet in its upstream ref" , " or: minici run .." , " run jobs for commits in given range" , " or: minici run