summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--obs.ipkg6
-rw-r--r--src/Obs/Main.idr21
2 files changed, 26 insertions, 1 deletions
diff --git a/obs.ipkg b/obs.ipkg
index 5e7f3d6..d637613 100644
--- a/obs.ipkg
+++ b/obs.ipkg
@@ -4,7 +4,11 @@ sourcedir = "src"
depends = contrib
+executable = obs
+main = Obs.Main
+
modules
- = Obs.Parser
+ = Obs.Main
+ , Obs.Parser
, Obs.Sort
, Obs.Syntax
diff --git a/src/Obs/Main.idr b/src/Obs/Main.idr
new file mode 100644
index 0000000..0ff1d70
--- /dev/null
+++ b/src/Obs/Main.idr
@@ -0,0 +1,21 @@
+module Obs.Main
+
+import Obs.Parser
+import Obs.Syntax
+
+import System
+
+import Text.PrettyPrint.Prettyprinter
+import Text.PrettyPrint.Prettyprinter.Render.Terminal
+
+usage : IO ()
+usage = do
+ () <- putStrLn "usage: obs <file>"
+ exitFailure
+
+main : IO ()
+main = do
+ [_, file] <- getArgs
+ | _ => usage
+ defs <- parseFile file
+ putDoc $ concatWith (\x, y => x <+> hardline <+> hardline <+> y) (map pretty defs)