From f88cbf20be4007ed7174c292dc1b57cc9495aaa2 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Thu, 11 Feb 2021 10:32:17 +0300 Subject: Config completed. --- Main.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'Main.hs') 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 -- cgit v1.2.3