diff options
Diffstat (limited to 'Main.hs')
-rw-r--r-- | Main.hs | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -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 |