aboutsummaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2021-02-11 10:32:17 +0300
committerAleksey Veresov <aleksey@veresov.pro>2021-02-11 10:32:17 +0300
commitf88cbf20be4007ed7174c292dc1b57cc9495aaa2 (patch)
tree03e40d11af1bef92f7b631564b607f62cfba4cff /Main.hs
parent3c383868f185db0009924ef55f6e1897bfb2ed47 (diff)
downloadsuem-f88cbf20be4007ed7174c292dc1b57cc9495aaa2.tar
suem-f88cbf20be4007ed7174c292dc1b57cc9495aaa2.tar.xz
suem-f88cbf20be4007ed7174c292dc1b57cc9495aaa2.zip
Config completed.
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/Main.hs b/Main.hs
index bc5032e..caaa8b8 100644
--- a/Main.hs
+++ b/Main.hs
@@ -3,6 +3,21 @@ module Main where
import Options.Applicative
import Suem
+inet_socket :: String -> Parser ConfigSocket
+inet_socket sock = ConfigInet <$> strOption
+ ( long ("i" ++ sock)
+ <> metavar ("ADDR_" ++ sock)
+ <> help ("Address for internet socket " ++ sock) )
+
+unix_socket :: String -> Parser ConfigSocket
+unix_socket sock = ConfigUnix <$> strOption
+ ( long ("u" ++ sock)
+ <> metavar ("ADDR_" ++ sock)
+ <> help ("Address for UNIX socket " ++ sock) )
+
+socket :: String -> Parser (Maybe ConfigSocket)
+socket sock = optional (inet_socket sock <|> unix_socket sock)
+
config :: Parser Config
config = Config
<$> option auto
@@ -26,6 +41,8 @@ config = Config
<> showDefault
<> value "rom.bin"
<> help "Path to file to load into ROM" )
+ <*> socket "0" <*> socket "1" <*> socket "2" <*> socket "3"
+ <*> socket "4" <*> socket "5" <*> socket "6" <*> socket "7"
main :: IO ()
main = suem =<< execParser opts