X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/xdg-ninja.git/blobdiff_plain/0ed6693f66fb949929b6d59b1b79dc87be538d61..932a10db39f29909cb93b9afce14928dcc5e8326:/src/xdgnj.hs diff --git a/src/xdgnj.hs b/src/xdgnj.hs index 3c4cea0..306c22b 100644 --- a/src/xdgnj.hs +++ b/src/xdgnj.hs @@ -2,11 +2,14 @@ module Main where import qualified AddProgram as PA +import qualified Checks as C import Data.Semigroup ((<>)) import qualified EditProgram as PE +import qualified PreviewProgram as PP import Options.Applicative -data Args = AddProgram +data Args = RunChecks + | AddProgram | EditProgram String | PreviewProgram String | LintProgram String @@ -24,7 +27,8 @@ lintProgram = LintProgram <$> argument str (metavar "PROGRAM") argsParser :: Parser Args argsParser = subparser - (command "add" (info (pure AddProgram) (progDesc "Add program")) + (command "run" (info (pure RunChecks) (progDesc "Run checks")) + <> command "add" (info (pure AddProgram) (progDesc "Add program")) <> command "edit" (info editProgram (progDesc "Edit program config")) <> command "prev" (info previewProgram (progDesc "Preview program config")) <> command "lintp" (info lintProgram (progDesc "Lint program config")) @@ -39,6 +43,8 @@ main :: IO () main = do args <- execParser args case args of + RunChecks -> C.checkDir "./programs" AddProgram -> PA.saveProgram EditProgram filename -> PE.editProgram filename + PreviewProgram filename -> PP.previewProgramFile filename _ -> print args