packages feed

pure-zlib-0.4: Deflate.hs

import Codec.Compression.Zlib(decompress)
import Data.ByteString.Lazy(readFile, writeFile)
import Data.List(isSuffixOf)
import Prelude hiding (readFile, writeFile)
import System.Environment

main :: IO ()
main =
  do args <- getArgs
     case args of
       [ifile] ->
         if ".z" `isSuffixOf` ifile
           then do bstr <- readFile ifile
                   case decompress bstr of
                     Nothing -> putStrLn "Decompression failure."
                     Just o  -> writeFile (take (length ifile - 2) ifile) o
           else putStrLn "Unexpected file name."
       _ ->
         putStrLn "USAGE: deflate [filename]"