]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blobdiff - src/xdgnj.hs
Add more programs
[xdg-ninja.git] / src / xdgnj.hs
index a379bf4f29b5ce92ff1dc9488cd88f45b0b26854..f3adf7c81a0b7f52b0360ad1cb0a2e85739cf07a 100644 (file)
@@ -2,12 +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
+import qualified PreviewProgram      as PP
 
-data Args = AddProgram
+data Args = RunChecks
+    | AddProgram
     | EditProgram String
     | PreviewProgram String
     | LintProgram String
@@ -25,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"))
@@ -40,7 +43,8 @@ main :: IO ()
 main = do
     args <- execParser args
     case args of
-        AddProgram           -> PA.saveProgram
-        EditProgram filename -> PE.editProgram filename
+        RunChecks               -> C.checkDir "./programs"
+        AddProgram              -> PA.saveProgram
+        EditProgram filename    -> PE.editProgram filename
         PreviewProgram filename -> PP.previewProgramFile filename
-        _                    -> print args
+        _                       -> print args