]> gitweb @ CieloNegro.org - blackboard-dns.git/blobdiff - ServerMain.hs
editzone
[blackboard-dns.git] / ServerMain.hs
index 833256f23961a03fa4ee73774b6cc911e25e087a..d0a6b8dd5044e90f19986b1bfa9f22c768b9fe75 100644 (file)
@@ -2,14 +2,13 @@
 module Main where
 
 import           Control.Monad
-{-
-import           DDNS.DBInfo
-import qualified Database.HDBC as RAW
-import qualified Database.HDBC.Sqlite3 as RAW
-import           Database.HaskellDB.DBSpec
-import           Database.HaskellDB.HDBC.SQLite3
--}
+import           DDNS.Server
+import           DDNS.Server.EditZone
+import           DDNS.Server.SignReq
+import           Data.List
+import           OpenSSL
 import           System.Console.ParseArgs
+import           System.IO
 
 data Options
     = Help
@@ -67,18 +66,19 @@ arginfo = [ Arg {
           ]
 
 main :: IO ()
-main = do m <- parseArgsIO ArgsComplete arginfo
+main = withOpenSSL $
+       do m <- parseArgsIO ArgsComplete arginfo
           when (gotArg m Help)
-                   $ usageError m "" `seq` return ()
+                   $ usageError m ""
 
-          usageError m "" `seq` return ()
+          let lsdir = getRequiredArg m LSDir
+          (key, cert) <- ensureWeHaveKeypair lsdir
+          withDB      <- ensureWeHaveDB lsdir
 
-{-
-main = do sqliteConnect "ddns.db" $ \ db ->
-              dbSpecToDatabase db dbinfo
-
-          rawCon <- RAW.connectSqlite3 "ddns.db"
-          mapM_ (\ sql -> RAW.run rawCon sql []) indexDeclarations
-          RAW.commit rawCon
-          RAW.disconnect rawCon
--}
\ No newline at end of file
+          withDB $ \ db ->
+              case getRequiredArg m Command of
+                "signreq"
+                    -> signReq key cert
+                "editzone"
+                    -> editZone db
+                _   -> usageError m ""