From 598b5b2cceb477a27c5ad981f52231556cbd58b9 Mon Sep 17 00:00:00 2001 From: joe Date: Wed, 14 Aug 2013 23:53:42 -0400 Subject: Moar --- keys.hs | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/keys.hs b/keys.hs index 5f0da17..4eb9603 100644 --- a/keys.hs +++ b/keys.hs @@ -532,16 +532,40 @@ multiCommand ti choices = strip (cmd,(action,_)) = fmap (cmd,) action -} -data Keys = +data Arguments = List | AutoSign {input :: FilePath, output :: FilePath} deriving (Show, Data, Typeable) main = do - args <- cmdArgs $ modes [List &= help "list keys",AutoSign (def &= argPos 1 - &= typFile ) - (def &=argPos 2 - &= typFile)] - &= summary "keys - a pgp key editing utility" - putStrLn $ show args + args <- cmdArgs $ modes + [ List &= help "list key pairs for which secrets are known" + &= auto + , AutoSign (def &= argPos 1 &= typFile ) (def &=argPos 2 &= typFile) + &= help "auto-sign tor-style uids" ] + &= program "keys" + &= summary "keys - a pgp key editing utility" + doCmd args + where + envhomedir opt = do + gnupghome <- lookupEnv homevar >>= + \d -> return $ d >>= guard . (/="") >> d + home <- flip fmap getHomeDirectory $ + \d -> fmap (const d) $ guard (d/="") + let homegnupg = (++('/':appdir)) <$> home + let val = (opt `mplus` gnupghome `mplus` homegnupg) + return $ val + + homevar = "GNUPGHOME" + appdir = ".gnupg" + + doCmd List = do + homedir <- envhomedir Nothing + flip (maybe (putStrLn "Could not find home directory.")) + homedir $ \homedir -> do + -- putStrLn $ "homedir = " ++show homedir + let secring = homedir ++ "/" ++ "secring.gpg" + -- putStrLn $ "secring = " ++ show secring + (Message msg) <- readPacketsFromFile secring + putStrLn $ listKeys msg -- cgit v1.2.3