packages feed

omnicodec 0.6 → 0.7

raw patch · 3 files changed

+53/−51 lines, 3 filesdep +conduitdep +transformersdep ~sandi

Dependencies added: conduit, transformers

Dependency ranges changed: sandi

Files

omnicodec.cabal view
@@ -1,12 +1,13 @@ name: omnicodec-version: 0.6+version: 0.7 license: OtherLicense license-file: COPYING author: Magnus Therning maintainer: magnus@therning.org copyright: Magnus Therning, 2012 synopsis: data encoding and decoding command line utilities-description: Two simple command line tools built on sandi.+description: Two simple command line tools built on sandi+    (http://hackage.haskell.org/package/sandi). build-type: Simple category: Codec cabal-version: >= 1.6@@ -23,13 +24,23 @@ executable odec     main-is: odec.hs     hs-source-dirs: src-    build-depends: base ==4.6.*, cmdargs ==0.10.*, bytestring ==0.10.*,-        sandi ==0.1.*+    build-depends:+        base ==4.6.*,+        cmdargs ==0.10.*,+        conduit ==1.0.*,+        bytestring ==0.10.*,+        sandi ==0.2.*,+        transformers ==0.3.*     ghc-options: -Wall  executable oenc     main-is: oenc.hs     hs-source-dirs: src-    build-depends: base ==4.6.*, cmdargs ==0.10.*, bytestring ==0.10.*,-        sandi ==0.1.*+    build-depends:+        base ==4.6.*,+        cmdargs ==0.10.*,+        conduit ==1.0.*,+        bytestring ==0.10.*,+        sandi ==0.2.*,+        transformers ==0.3.*     ghc-options: -Wall
src/odec.hs view
@@ -22,25 +22,26 @@ import Paths_omnicodec (version)  import Control.Exception-import Control.Monad+import Control.Monad.IO.Class+-- import Control.Monad import Data.ByteString as BS import Data.Maybe import Data.Version(showVersion) import System.Console.CmdArgs-import System.Exit+-- import System.Exit import System.IO as SIO+import Data.Conduit+import Data.Conduit.Binary -import Codec.Binary.Base64 as B64-import qualified Codec.Binary.Base64Url as B64U-import qualified Codec.Binary.Base32 as B32-import qualified Codec.Binary.Base32Hex as B32H-import qualified Codec.Binary.Base16 as B16-import qualified Codec.Binary.Base85 as B85-import qualified Codec.Binary.QuotedPrintable as QP-import qualified Codec.Binary.Uu as Uu-import qualified Codec.Binary.Xx as Xx--- import qualified Codec.Binary.PythonString as PS--- import qualified Codec.Binary.Url as Url+import qualified Data.Conduit.Codec.Base64 as B64+import qualified Data.Conduit.Codec.Base64Url as B64U+import qualified Data.Conduit.Codec.Base32 as B32+import qualified Data.Conduit.Codec.Base32Hex as B32H+import qualified Data.Conduit.Codec.Base16 as B16+import qualified Data.Conduit.Codec.Base85 as B85+import qualified Data.Conduit.Codec.QuotedPrintable as QP+import qualified Data.Conduit.Codec.Uu as Uu+import qualified Data.Conduit.Codec.Xx as Xx  -- {{{1 command line options ver :: String@@ -50,7 +51,7 @@ data Codec = B64 | B64U | B32 | B32H | B16 | B85 | QP | Uu | Xx     deriving(Show, Eq, Data, Typeable) -codecMap :: [(Codec, BS.ByteString -> Either (BS.ByteString, BS.ByteString) BS.ByteString)]+codecMap :: [(Codec, Conduit ByteString (ResourceT IO) ByteString)] codecMap =     [ (B64, B64.decode)     , (B64U, B64U.decode)@@ -92,10 +93,10 @@ main :: IO () main = do     cmdArgs myArgs >>= \ a -> do-    let encFunc = lookup (argCodec a) codecMap+    let decFunc = lookup (argCodec a) codecMap     withMaybeFile (argInput a) ReadMode $ \ inputFile ->         withMaybeFile (argOutput a) WriteMode $ \ outputFile ->-            decodeFile (fromJust encFunc) inputFile outputFile+            runResourceT $ decodeFile (fromJust decFunc) inputFile outputFile  withMaybeFile :: Maybe FilePath -> IOMode -> (Handle -> IO r) -> IO r withMaybeFile fn mode func = let@@ -107,12 +108,6 @@         hClose         func -decodeFile :: (BS.ByteString -> Either a BS.ByteString) -> Handle -> Handle -> IO ()-decodeFile decFunc inF outF = let-        writeToFile d = either-            (const $ SIO.hPutStrLn stderr "Decoding failed!" >> exitFailure)-            (BS.hPut outF)-            (decFunc d)-    in do-        inData <- BS.hGet inF 4096-        unless (BS.null inData) $ writeToFile inData >> decodeFile decFunc inF outF+-- decodeFile :: (BS.ByteString -> Either a BS.ByteString) -> Handle -> Handle -> IO ()+decodeFile :: (MonadIO m) => Conduit ByteString m ByteString -> Handle -> Handle -> m ()+decodeFile decFunc inF outF = sourceHandle inF $= decFunc $$ sinkHandle outF
src/oenc.hs view
@@ -22,24 +22,24 @@ import Paths_omnicodec (version)  import Control.Exception-import Control.Monad import Data.ByteString as BS import Data.Maybe import Data.Version(showVersion) import System.Console.CmdArgs import System.IO+import Data.Conduit+import Data.Conduit.Binary+import Control.Monad.IO.Class -import Codec.Binary.Base64 as B64-import qualified Codec.Binary.Base64Url as B64U-import qualified Codec.Binary.Base32 as B32-import qualified Codec.Binary.Base32Hex as B32H-import qualified Codec.Binary.Base16 as B16-import qualified Codec.Binary.Base85 as B85-import qualified Codec.Binary.QuotedPrintable as QP-import qualified Codec.Binary.Uu as Uu-import qualified Codec.Binary.Xx as Xx--- import qualified Codec.Binary.PythonString as PS--- import qualified Codec.Binary.Url as Url+import qualified Data.Conduit.Codec.Base64 as B64+import qualified Data.Conduit.Codec.Base64Url as B64U+import qualified Data.Conduit.Codec.Base32 as B32+import qualified Data.Conduit.Codec.Base32Hex as B32H+import qualified Data.Conduit.Codec.Base16 as B16+import qualified Data.Conduit.Codec.Base85 as B85+import qualified Data.Conduit.Codec.QuotedPrintable as QP+import qualified Data.Conduit.Codec.Uu as Uu+import qualified Data.Conduit.Codec.Xx as Xx  -- {{{1 command line options ver :: String@@ -49,7 +49,7 @@ data Codec = B64 | B64U | B32 | B32H | B16 | B85 | QP | Uu | Xx     deriving(Show, Eq, Data, Typeable) -codecMap :: [(Codec, BS.ByteString -> BS.ByteString)]+codecMap :: [(Codec, Conduit ByteString (ResourceT IO) ByteString)] codecMap =     [ (B64, B64.encode)     , (B64U, B64U.encode)@@ -60,8 +60,6 @@     , (QP, QP.encode)     , (Uu, Uu.encode)     , (Xx, Xx.encode)-    -- , (PS, PS.encodeInc)-    -- , (Url, Url.encodeInc)     ]  data MyArgs = MyArgs { argInput :: Maybe FilePath, argOutput :: Maybe FilePath, argCodec :: Codec }@@ -94,7 +92,7 @@     let encFunc = lookup (argCodec a) codecMap     withMaybeFile (argInput a) ReadMode $ \ inputFile ->         withMaybeFile (argOutput a) WriteMode $ \ outputFile ->-            encodeFile (fromJust encFunc) inputFile outputFile+            runResourceT $ encodeFile (fromJust encFunc) inputFile outputFile  withMaybeFile :: Maybe FilePath -> IOMode -> (Handle -> IO r) -> IO r withMaybeFile fn mode func = let@@ -106,7 +104,5 @@         hClose         func -encodeFile :: (BS.ByteString -> BS.ByteString) -> Handle -> Handle -> IO ()-encodeFile encFunc inF outF = do-    inData <- BS.hGet inF 4096-    unless (BS.null inData) $ BS.hPut outF (encFunc inData) >> encodeFile encFunc inF outF+encodeFile :: (MonadIO m) => Conduit ByteString m ByteString -> Handle -> Handle -> m ()+encodeFile encFunc inF outF = sourceHandle inF $= encFunc $$ sinkHandle outF