From 9eed726050691c1526410844a8954b5580386825 Mon Sep 17 00:00:00 2001 From: joe Date: Tue, 22 Apr 2014 19:43:18 -0400 Subject: Started porting kiki to a multi-mode interface. --- kiki.hs | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/kiki.hs b/kiki.hs index 620d01e..0c1d4c6 100644 --- a/kiki.hs +++ b/kiki.hs @@ -521,9 +521,7 @@ doAutosign rt kd@(KeyData k ksigs umap submap) = ops gs = groupBy sameMaster (sortBy (comparing code) bindings') -main = do - dotlock_init - args_raw <- getArgs +kiki "sync" args_raw = do let (args,trail1) = break (=="--") args_raw trail = drop 1 trail1 (sargs,margs) = @@ -646,3 +644,33 @@ main = do forM_ report $ \(fname,act) -> do putStrLn $ fname ++ ": " ++ reportString act + +kiki "working-key" args = do + kiki "sync" ["--show-wk"] + +kiki "help" args = do + putStrLn "Valid commands are:" + let longest = maximum $ map (length . fst) commands + pad cmd = take (longest+3) $ cmd ++ repeat ' ' + forM commands $ \(cmd,help) -> do + putStrLn $ " " ++ pad cmd ++ help + return () + +commands :: [(String,String)] +commands = + [ ( "help", "display usage information" ) + , ( "sync", "update key files of various kinds by propogating information" ) + , ( "working-key", "show the current working master key and its subkeys" ) + ] + +main = do + dotlock_init + args_raw <- getArgs + case args_raw of + + [] -> kiki "working-key" [] + + cmd : args | cmd `elem` map fst commands + -> kiki cmd args + + _ -> kiki "help" args_raw -- cgit v1.2.3