mirror of
https://github.com/The1Penguin/org-to-mafiauniverse.git
synced 2024-11-21 17:58:12 +00:00
created an args system
This commit is contained in:
parent
152d73665f
commit
c50d9e35dc
25
app/Main.hs
25
app/Main.hs
@ -1,6 +1,29 @@
|
||||
module Main where
|
||||
|
||||
import Control.Monad
|
||||
import System.Environment
|
||||
import System.Exit
|
||||
import Text.ParserCombinators.ReadP
|
||||
|
||||
parse :: ReadP String -> String -> String
|
||||
parse rules = fst . last .readP_to_S rules
|
||||
|
||||
main :: IO ()
|
||||
main = putStrLn =<< readFile =<< head <$> getArgs
|
||||
main = useArgs =<< ( parse argParse . unlines) <$> getArgs
|
||||
|
||||
argParse :: ReadP String
|
||||
argParse =
|
||||
string "-" >> (many1 (satisfy (/= ' ')))
|
||||
|
||||
useArgs :: String -> IO a
|
||||
useArgs [] = exit
|
||||
useArgs ('h':_) = usage >> exit
|
||||
useArgs ('v':_) = version >> exit
|
||||
useArgs (_:xs) = useArgs xs
|
||||
|
||||
usage :: IO ()
|
||||
usage = putStrLn "Usage: \"PENDINGNAME\" [-hv] [file]"
|
||||
version :: IO ()
|
||||
version = putStrLn "\"PENDINGNAME\" 0.1"
|
||||
exit :: IO a
|
||||
exit = exitWith ExitSuccess
|
||||
|
Loading…
Reference in New Issue
Block a user