X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/xdg-ninja.git/blobdiff_plain/3dddb2529a657af8401a3c9152b4b4e131a028cd..bea3ec92f3d998eecfd3f46fcd33f90da0aec509:/src/xdgnj.hs diff --git a/src/xdgnj.hs b/src/xdgnj.hs index d2566c3..f3adf7c 100644 --- a/src/xdgnj.hs +++ b/src/xdgnj.hs @@ -1,10 +1,15 @@ module Main where -import AddProgram + +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 @@ -22,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")) @@ -37,5 +43,8 @@ main :: IO () main = do args <- execParser args case args of - AddProgram -> saveProgram - _ -> print args + RunChecks -> C.checkDir "./programs" + AddProgram -> PA.saveProgram + EditProgram filename -> PE.editProgram filename + PreviewProgram filename -> PP.previewProgramFile filename + _ -> print args