X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/xdg-ninja.git/blobdiff_plain/0ed6693f66fb949929b6d59b1b79dc87be538d61..b3d2b19da1d1ebf3df3bdbf0098ce21d98ccbc56:/src/xdgnj.hs diff --git a/src/xdgnj.hs b/src/xdgnj.hs index 3c4cea0..f3adf7c 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 Options.Applicative +import qualified PreviewProgram as PP -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 - AddProgram -> PA.saveProgram - EditProgram filename -> PE.editProgram filename - _ -> print args + RunChecks -> C.checkDir "./programs" + AddProgram -> PA.saveProgram + EditProgram filename -> PE.editProgram filename + PreviewProgram filename -> PP.previewProgramFile filename + _ -> print args