]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blobdiff - src/xdgnj.hs
Add more programs
[xdg-ninja.git] / src / xdgnj.hs
index d2566c3f8170ab528a6117d966633457386a461c..f3adf7c81a0b7f52b0360ad1cb0a2e85739cf07a 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           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