abstract + basic arg
authorDaniel Liu <mr.picklepinosaur@gmail.com>
Fri, 30 Apr 2021 23:48:39 +0000 (19:48 -0400)
committerDaniel Liu <mr.picklepinosaur@gmail.com>
Fri, 30 Apr 2021 23:48:39 +0000 (19:48 -0400)
Ekitai.hs [new file with mode: 0644]
Parse.hs [moved from ekitai.hs with 68% similarity]

diff --git a/Ekitai.hs b/Ekitai.hs
new file mode 100644 (file)
index 0000000..e413b67
--- /dev/null
+++ b/Ekitai.hs
@@ -0,0 +1,10 @@
+import System.Environment
+
+import Parse
+
+main = do
+    argv <- getArgs
+    (opts, fname) <- ekitaiOpts argv
+    putStrLn fname
+    return 0
+
similarity index 68%
rename from ekitai.hs
rename to Parse.hs
index 9f24440..26a0390 100644 (file)
--- a/ekitai.hs
+++ b/Parse.hs
@@ -1,11 +1,10 @@
+module Parse ( ekitaiOpts ) where
+
 import System.Console.GetOpt
 import System.Environment
-import System.Exit
 import Data.Maybe
 import Data.Either
 
-data Flag 
-
 data Options = Options
     { optHelp       :: Bool
     , optColor      :: Bool
@@ -26,13 +25,10 @@ options =
         "enables color"
     ]
 
-ekitaiOpts :: [String] -> Either String (Options, String)
+ekitaiOpts :: [String] -> IO (Options, String)
 ekitaiOpts argv =
     case getOpt RequireOrder options argv of
-        (o, n, []) -> undefined
-        (_, _, err) -> Left "invalid"
-
-main = do
-    argv <- getArgs
-    return 0
+        (o, [n], []) -> return (foldl (flip id) defaultOptions o, n)
+        (o, _, [])   -> ioError $ userError $ "must supply input file"
+        (_, _, errs)  -> ioError $ userError $ (concat errs)