stagen-0.2.0: library/Stagen/Clean.hs
module Stagen.Clean where
import Control.Applicative (pure, (<$>))
import Data.Maybe (catMaybes)
import System.FilePath.Find (find)
import System.IO.Error (catchIOError)
import System.Directory (removeFile)
import Stagen.Opts
import Stagen.File
runClean :: Opts -> IO ()
runClean Opts{..} = do
let ignore = optsIgnore ++ catMaybes [optsHeader, optsFooter]
files <- find (pure True) (eligable ignore) optsTargetDirectory
htmlPaths <- map fst <$> (sequence $ map (fromMarkdown optsVerbose optsBaseUrl) files)
mapM_ (\p -> catchIOError (removeFile p) (const done)) htmlPaths
where
done = return ()