]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blobdiff - src/xdgnj.hs
Add checks haskell module
[xdg-ninja.git] / src / xdgnj.hs
index d2566c3f8170ab528a6117d966633457386a461c..306c22ba8747e294f34f31fba75b99fa54f3c17a 100644 (file)
@@ -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 qualified PreviewProgram         as PP
 import           Options.Applicative
 
-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