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]"