aboutsummaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
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