]> gitweb @ CieloNegro.org - blackboard-dns.git/blob - ClientMain.hs
editzone
[blackboard-dns.git] / ClientMain.hs
1 module Main where
2
3 import           Control.Monad
4 import           DDNS.Client.MakeReq
5 import           OpenSSL
6 import           System.Console.ParseArgs
7
8 data Options
9     = Help
10     | Command
11     deriving (Show, Eq, Ord)
12
13 arginfo :: [Arg Options]
14 arginfo = [ Arg {
15               argIndex = Help
16             , argAbbr  = Just 'h'
17             , argName  = Nothing
18             , argData  = Nothing
19             , argDesc  = "print this help."
20             }
21           , Arg {
22               argIndex = Command
23             , argAbbr  = Nothing
24             , argName  = Nothing
25             , argData  = argDataDefaulted "COMMAND" ArgtypeString "update"
26             , argDesc  = "command to the client (default: \"update\")."
27             }
28           ]
29
30 main :: IO ()
31 main = withOpenSSL $
32        do m <- parseArgsIO ArgsComplete arginfo
33           when (gotArg m Help)
34                    $ usageError m ""
35
36           case getRequiredArg m Command of
37             "makereq"
38                 -> makeReq
39             _   -> usageError m ""