From a4690dd424d65832af8c7520b0b08c9bcab928f2 Mon Sep 17 00:00:00 2001 From: John Lenz Date: Thu, 19 Sep 2013 15:22:14 -0500 Subject: [PATCH] yesod-static: improve messages for embedded compression tools When trying various compression tools, display some messages to the user about which compression tool is used. --HG-- extra : rebase_source : e90e6ed49317b91a0fbe90d94f437459926f59e7 --- yesod-static/Yesod/EmbeddedStatic/Generators.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/yesod-static/Yesod/EmbeddedStatic/Generators.hs b/yesod-static/Yesod/EmbeddedStatic/Generators.hs index f010dd75..e83785d9 100644 --- a/yesod-static/Yesod/EmbeddedStatic/Generators.hs +++ b/yesod-static/Yesod/EmbeddedStatic/Generators.hs @@ -32,15 +32,16 @@ module Yesod.EmbeddedStatic.Generators ( import Control.Applicative ((<$>)) import Control.Exception (try, SomeException) -import Control.Monad (forM) +import Control.Monad (forM, when) import Control.Monad.Trans.Resource (runResourceT) import Data.Char (isDigit, isLower) import Data.Conduit (($$), (=$)) import Data.Conduit.Process (proc, conduitProcess) import Data.Default (def) +import Data.Maybe (isNothing) import Language.Haskell.TH import Network.Mime (defaultMimeLookup) -import System.Directory (doesDirectoryExist, getDirectoryContents) +import System.Directory (doesDirectoryExist, getDirectoryContents, findExecutable) import System.FilePath (()) import Text.Jasmine (minifym) import qualified Data.ByteString.Lazy as BL @@ -193,10 +194,14 @@ compressTool :: FilePath -- ^ program -> [String] -- ^ options -> BL.ByteString -> IO BL.ByteString compressTool f opts ct = do + mpath <- findExecutable f + when (isNothing mpath) $ + fail $ "Unable to find " ++ f let src = C.sourceList $ BL.toChunks ct p = proc f opts sink = C.consume compressed <- runResourceT (src $$ conduitProcess p =$ sink) + putStrLn $ "Compressed successfully with " ++ f return $ BL.fromChunks compressed