packages feed

hopenpgp-tools 0.9 → 0.9.1

raw patch · 5 files changed

+40/−33 lines, 5 filesdep ~hOpenPGPdep ~optparse-applicative

Dependency ranges changed: hOpenPGP, optparse-applicative

Files

HOpenPGP/Tools/ExpressionParsing.hs view
@@ -64,7 +64,7 @@                 <|> (A.asciiCI "dsa" *> pure (PKPPKA DSA))                 <|> (A.asciiCI "elgamal" *> pure (PKPPKA ElgamalEncryptOnly))                 <|> (A.asciiCI "ecdsa" *> pure (PKPPKA ECDSA))-                <|> (A.asciiCI "ec" *> pure (PKPPKA EC))+                <|> (A.asciiCI "ecdh" *> pure (PKPPKA ECDH))                 <|> (A.asciiCI "dh" *> pure (PKPPKA DH))                 <|> (PKPInt <$> hexordec) 
hkt.hs view
@@ -59,7 +59,7 @@ import Data.Tuple (swap) import System.Directory (getHomeDirectory) -import Options.Applicative.Builder (argument, command, footer, header, help, info, long, metavar, option, prefs, progDesc, showDefault, showHelpOnError, str, strOption, subparser, switch, value)+import Options.Applicative.Builder (argument, auto, command, footer, header, help, info, long, metavar, option, prefs, progDesc, showDefault, showHelpOnError, str, strOption, subparser, switch, value) import Options.Applicative.Extra (customExecParser, helper) import Options.Applicative.Types (Parser) @@ -117,7 +117,7 @@         ( long "keyring"        <> metavar "FILE"        <> help "file containing keyring" )))-    <*> option+    <*> option auto         ( long "output-format"        <> metavar "FORMAT"        <> value GraphViz@@ -134,7 +134,7 @@         ( long "keyring"        <> metavar "FILE"        <> help "file containing keyring" )))-    <*> option+    <*> option auto         ( long "output-format"        <> metavar "FORMAT"        <> value GraphViz@@ -159,10 +159,11 @@  cmd :: String -> Parser Command cmd homedir = subparser-    ( command "list" (info ( CmdList <$> listO homedir) ( progDesc "list matching keys" ))-   <> command "export-pubkeys" (info ( CmdExportPubkeys <$> listO homedir) ( progDesc "export matching keys to stdout" ))+    ( command "export-pubkeys" (info ( CmdExportPubkeys <$> listO homedir) ( progDesc "export matching keys to stdout" ))+   <> command "findpaths" (info ( CmdFindPaths <$> findPathsO homedir) ( progDesc "find short paths between keys" ))    <> command "graph" (info ( CmdGraph <$> graphO homedir) ( progDesc "graph certifications" ))-   <> command "findpaths" (info ( CmdFindPaths <$> findPathsO homedir) ( progDesc "find short paths between keys" )))+   <> command "list" (info ( CmdList <$> listO homedir) ( progDesc "list matching keys" ))+   )  banner' :: Handle -> IO () banner' h = hPutStrLn h (banner "hkt" ++ "\n" ++ warranty "hkt")
hokey.hs view
@@ -42,7 +42,7 @@ import Data.Conduit.Cereal (conduitGet, conduitPut) import qualified Data.Conduit.List as CL import Data.Conduit.OpenPGP.Keyring (conduitToTKsDropping)-import Data.List (unfoldr, elemIndex, findIndex, sort, sortBy, intercalate)+import Data.List (unfoldr, elemIndex, findIndex, nub, sort, sortBy, intercalate) import qualified Data.Map as Map import Data.Maybe (fromMaybe, mapMaybe, listToMaybe) import Data.Monoid ((<>), mconcat, Monoid(..))@@ -53,7 +53,7 @@ import qualified Data.Yaml as Y import GHC.Generics -import Options.Applicative.Builder (command, footer, header, help, info, long, metavar, prefs, progDesc, showDefault, showHelpOnError, option, subparser, value)+import Options.Applicative.Builder (auto, command, footer, header, help, info, long, metavar, prefs, progDesc, showDefault, showHelpOnError, option, subparser, value) import Options.Applicative.Extra (customExecParser, helper) import Options.Applicative.Types (Parser) @@ -234,7 +234,7 @@  lintO :: Parser LintOptions lintO = LintOptions-    <$> option+    <$> option auto         ( long "output-format"        <> metavar "FORMAT"        <> value Pretty@@ -252,8 +252,8 @@  cmd :: Parser Command cmd = subparser-    ( command "lint" (info ( CmdLint <$> lintO) ( progDesc "check key(s) for 'best practices'" ))-   <> command "canonicalize" (info ( pure CmdCanonicalize) ( progDesc "arrange key components in a canonical ordering" ))+    ( command "canonicalize" (info ( pure CmdCanonicalize) ( progDesc "arrange key components in a canonical ordering" ))+   <> command "lint" (info ( CmdLint <$> lintO) ( progDesc "check key(s) for 'best practices'" ))     )  doLint :: LintOptions -> IO ()@@ -278,7 +278,7 @@                                            (indepthsort ua)                                            (indepthsort s)         indepthsort :: (Ord a, Ord b) => [(a,[b])] -> [(a,[b])]-        indepthsort = sort . over (mapped._2) sort+        indepthsort = nub . sort . over (mapped._2) sort  banner' :: Handle -> IO () banner' h = hPutStrLn h (banner "hokey" ++ "\n" ++ warranty "hokey")
hopenpgp-tools.cabal view
@@ -1,5 +1,5 @@ name:                hopenpgp-tools-version:             0.9+version:             0.9.1 synopsis:            hOpenPGP-based command-line tools description:         command-line tools for performing some OpenPGP-related operations homepage:            http://floss.scru.org/hopenpgp-tools@@ -24,10 +24,11 @@                ,       cereal-conduit                ,       conduit                >= 1.1                ,       conduit-extra          >= 1.1-               ,       hOpenPGP               >= 1.0.1+               ,       errors+               ,       hOpenPGP               >= 1.5.2                ,       lens                ,       openpgp-asciiarmor     >= 0.1-               ,       optparse-applicative   >= 0.7+               ,       optparse-applicative   >= 0.10.0                ,       resourcet                ,       text                ,       transformers@@ -55,7 +56,7 @@                ,       ixset                ,       lens                ,       old-locale-               ,       optparse-applicative   >= 0.5.0+               ,       optparse-applicative   >= 0.10.0                ,       resourcet                ,       text                ,       time@@ -83,7 +84,7 @@                ,       hOpenPGP               >= 1.4                ,       ixset                ,       lens-               ,       optparse-applicative   >= 0.5.0+               ,       optparse-applicative   >= 0.10.0                ,       resourcet                ,       text                ,       time@@ -98,4 +99,4 @@ source-repository this   type:     git   location: git://git.debian.org/users/clint/hopenpgp-tools.git-  tag:      hopenpgp-tools/0.9+  tag:      hopenpgp-tools/0.9.1
hot.hs view
@@ -26,6 +26,7 @@ import Codec.Encryption.OpenPGP.Serialize () import Codec.Encryption.OpenPGP.Types import Control.Applicative ((<$>), (<*>), (*>), (<|>), optional, pure)+import Control.Error.Util (note) import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Trans.Resource (runResourceT) import qualified Data.Attoparsec.Text as A@@ -44,9 +45,9 @@  import System.IO (stdin, stderr, stdout, Handle, hFlush, hPutStrLn, hSetBuffering, BufferMode(..)) -import Options.Applicative.Builder (command, footer, header, help, info, long, metavar, nullOption, reader, prefs, progDesc, showHelpOnError, strOption, subparser, ParseError(..))+import Options.Applicative.Builder (command, footer, header, help, info, long, metavar, option, eitherReader, prefs, progDesc, showHelpOnError, strOption, subparser) import Options.Applicative.Extra (customExecParser, helper)-import Options.Applicative.Types (Parser, ReadM(..))+import Options.Applicative.Types (Parser)  data Command = DumpC | DeArmorC | ArmorC ArmoringOptions | FilterC FilteringOptions @@ -81,22 +82,26 @@     let a = Armor armortype (("Version", "hot " ++ showVersion version):maybe [] (\x -> [("Comment", x)]) comment ) (BL.fromChunks m)     BL.putStr $ AA.encodeLazy [a] -armorTypeReader :: String -> ReadM ArmorType-armorTypeReader = ReadM . armorTypeReader'-    where-        armorTypeReader' "message" = Right ArmorMessage  -        armorTypeReader' "pubkeyblock" = Right ArmorPublicKeyBlock       -        armorTypeReader' "privkeyblock" = Right ArmorPrivateKeyBlock     -        armorTypeReader' "signature" = Right ArmorSignature-        armorTypeReader' _ = Left (ErrorMsg "unknown armor type")+armorTypes :: [(String, ArmorType)]+armorTypes = [+    ("message", ArmorMessage)+  , ("pubkeyblock", ArmorPublicKeyBlock)+  , ("privkeyblock", ArmorPrivateKeyBlock)+  , ("signature", ArmorSignature)+  ] +armorTypeReader :: String -> Either String ArmorType+armorTypeReader = note "unknown armor type" . flip lookup armorTypes+ doFilter :: FilteringOptions -> IO () doFilter fo = runResourceT $ CB.sourceHandle stdin $= conduitGet (get :: Get Pkt) $= conduitFilter (parseExpressions fo) $= conduitPut put $$ CB.sinkHandle stdout  aoP :: Parser ArmoringOptions aoP = ArmoringOptions     <$> optional (strOption (long "comment" <> metavar "COMMENT" <> help "ASCII armor Comment field"))-    <*> nullOption (long "armor-type" <> reader armorTypeReader <> metavar "ARMORTYPE" <> help "ASCII armor type")+    <*> option (eitherReader armorTypeReader) (long "armor-type" <> metavar "ARMORTYPE" <> armortypeHelp)+    where+        armortypeHelp = help $ "ASCII armor type " ++ show (map fst armorTypes)  foP :: Parser FilteringOptions foP = FilteringOptions@@ -119,9 +124,9 @@  cmd :: Parser Command cmd = subparser-  ( command "dump" (info ( pure DumpC ) ( progDesc "Dump OpenPGP packets from stdin" ))+  ( command "armor" (info ( ArmorC <$> aoP ) ( progDesc "Armor stdin to stdout" ))  <> command "dearmor" (info ( pure DeArmorC ) ( progDesc "Dearmor stdin to stdout" ))- <> command "armor" (info ( ArmorC <$> aoP ) ( progDesc "Armor stdin to stdout" ))+ <> command "dump" (info ( pure DumpC ) ( progDesc "Dump OpenPGP packets from stdin" ))  <> command "filter" (info ( FilterC <$> foP ) ( progDesc "Filter some packets from stdin to stdout" ))   ) @@ -182,7 +187,7 @@                 <|> (A.asciiCI "dsa" *> pure (SPPKA DSA))                 <|> (A.asciiCI "elgamal" *> pure (SPPKA ElgamalEncryptOnly))                 <|> (A.asciiCI "ecdsa" *> pure (SPPKA ECDSA))-                <|> (A.asciiCI "ec" *> pure (SPPKA EC))+                <|> (A.asciiCI "ecdh" *> pure (SPPKA ECDH))                 <|> (A.asciiCI "dh" *> pure (SPPKA DH))                 <|> (A.asciiCI "binary" *> pure (SPSigType BinarySig))                 <|> (A.asciiCI "canonicaltext" *> pure (SPSigType CanonicalTextSig))