From 294cda407d82c6b98b63ac21fea3b937ed1c4bb5 Mon Sep 17 00:00:00 2001 From: joe Date: Mon, 14 Apr 2014 20:01:02 -0400 Subject: progress on buildKeyDB --- KeyRing.hs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/KeyRing.hs b/KeyRing.hs index 2a80930..5547673 100644 --- a/KeyRing.hs +++ b/KeyRing.hs @@ -277,17 +277,24 @@ data KeySpec = buildKeyDB :: FilePath -> FilePath -> Maybe String -> KeyRingData - -> IO ((KeyDB,String),[(FilePath,KikiReportAction)]) + -> IO ((KeyDB,Maybe String),[(FilePath,KikiReportAction)]) buildKeyDB secring pubring grip0 keyring = do - let rings = do + let isring (KeyRingFile {}) = True + isring _ = False + + iswallet WalletFile = True + iswallet _ = False + + files isring = do (f,(rtyp,ftyp)) <- Map.toList (kFiles keyring) - let isring (KeyRingFile {}) = True - isring _ = False guard (isring ftyp) resolveInputFile secring pubring f + readp n = fmap (n,) (readPacketsFromFile n) + readw wk n = fmap (n,) (readPacketsFromWallet wk n) - ms <- mapM readp rings + + ms <- mapM readp (files isring) let grip = grip0 `mplus` (fingerprint <$> fstkey) where fstkey = listToMaybe $ mapMaybe isSecringKey ms @@ -300,8 +307,12 @@ buildKeyDB secring pubring grip0 keyring = do guard $ matchSpec (KeyGrip fp) elm return $ keyPacket (snd elm) db0 = foldl' (uncurry . merge) Map.empty ms - db <- return db0 -- todo - return ( (db, todo), todo ) + + wms <- mapM (readw wk) (files iswallet) + + (db,report) <- return (db0,[]) -- todo + + return ( (db, grip), report ) runKeyRing :: KeyRingData -> (KeyRingRuntime -> a) -> IO (KikiResult a) runKeyRing keyring op = do @@ -325,7 +336,7 @@ runKeyRing keyring op = do , rtSecring = secring , rtRings = [] -- todo secring:pubring:keyringFiles keyring , rtWallets = [] -- todo walletFiles keyring - , rtGrip = grip0 + , rtGrip = grip , rtKeyDB = db } report2 <- todo -- write files -- cgit v1.2.3