1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
-- |Wrappers around some handy unix shell commands. Please let
-- me know if you think of better module names to hold these
-- functions. -dsf
module System.Unix.Misc
( md5sum
, gzip)
where
import Control.Exception
import qualified Codec.Compression.GZip
import Data.ByteString.Lazy.Char8 (empty, readFile, writeFile)
import Data.Digest.Pure.MD5 (md5)
import Data.Maybe
import System.Cmd
import System.Directory
import System.Exit
import System.IO
import System.Posix.Files
import System.Process
-- | Deprecated: Use @Data.ByteString.Lazy.Char8.readFile path >>= return . show . Data.Digest.Pure.MD5.md5@
{-# DEPRECATED md5sum "Use Data.ByteString.Lazy.Char8.readFile path >>= return . show . Data.Digest.Pure.MD5.md5" #-}
md5sum :: FilePath -> IO String
md5sum path = Data.ByteString.Lazy.Char8.readFile path >>= return . show . md5
{-
do
(text, _, exitCode) <- lazyProcess "md5sum" [path] Nothing Nothing empty >>= return . collectOutputUnpacked
let output = listToMaybe (words text)
case exitCode of
ExitSuccess ->
case output of
Nothing -> error ("Error in output of 'md5sum " ++ path ++ "'")
Just checksum -> return checksum
_ -> error ("Error running 'md5sum " ++ path ++ "'")
-}
-- | Deprecated: Use @Data.ByteString.Lazy.Char8.readFile path >>= Data.ByteString.Lazy.Char8.writeFile (path ++ \".gz\")@
{-# DEPRECATED gzip "Use Data.ByteString.Lazy.Char8.readFile path >>= Data.ByteString.Lazy.Char8.writeFile (path ++ \".gz\")" #-}
gzip :: FilePath -> IO ()
gzip path = Data.ByteString.Lazy.Char8.readFile path >>= Data.ByteString.Lazy.Char8.writeFile (path ++ ".gz")
{-
do
result <- system ("gzip < " ++ path ++ " > " ++ path ++ ".gz")
case result of
ExitSuccess -> return ()
e -> error (show e)
-}
|