X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=ServerMain.hs;h=d0a6b8dd5044e90f19986b1bfa9f22c768b9fe75;hb=22ba80d23ad59661c90bd5a77305b16c417b153b;hp=5f0db3001bc24fdb162e4e260ed755ccf0bb896f;hpb=8109d2350f4c2855cd65b63c14efcb70fa3473c7;p=blackboard-dns.git diff --git a/ServerMain.hs b/ServerMain.hs index 5f0db30..d0a6b8d 100644 --- a/ServerMain.hs +++ b/ServerMain.hs @@ -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 "" - usageError m "" + 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 ""