From 9f5b07ccde8f54bb4d1905c8d51e69f762aed057 Mon Sep 17 00:00:00 2001 From: pacien Date: Fri, 21 Feb 2020 14:59:35 +0100 Subject: compiler: make --clean-output remove old viewer files GitHub: closes #138 --- compiler/app/Main.hs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'compiler/app/Main.hs') diff --git a/compiler/app/Main.hs b/compiler/app/Main.hs index 1229e88..404de4b 100644 --- a/compiler/app/Main.hs +++ b/compiler/app/Main.hs @@ -24,11 +24,11 @@ import Control.Monad (when) import Data.Version (showVersion) import Data.Aeson (ToJSON) import System.FilePath (()) -import System.Directory (canonicalizePath) +import System.Directory (canonicalizePath, listDirectory) import System.Console.CmdArgs import Compiler -import Files (readDirectory, copyTo) +import Files (readDirectory, copyTo, remove) data ViewerConfig = ViewerConfig @@ -95,12 +95,13 @@ main = opts <- cmdArgs options buildGallery opts when (withViewer opts) $ do + when (cleanOutput opts) $ cleanViewerDir (outputDir opts) copyViewer (outputDir opts) writeViewerConfig (outputDir opts "config.json") where gallerySubdir :: String - gallerySubdir = "gallery/" + gallerySubdir = "gallery" buildGallery :: Options -> IO () buildGallery opts = @@ -123,6 +124,12 @@ main = if withViewer opts then outputBase gallerySubdir else outputBase where outputBase = outputDir opts + cleanViewerDir :: FilePath -> IO () + cleanViewerDir target = + listDirectory target + >>= return . filter (/= gallerySubdir) + >>= mapM_ remove . map (target ) + copyViewer :: FilePath -> IO () copyViewer target = putStrLn "Copying viewer webapp" @@ -131,4 +138,4 @@ main = >>= copyTo target writeViewerConfig :: FilePath -> IO () - writeViewerConfig fileName = writeJSON fileName $ ViewerConfig gallerySubdir + writeViewerConfig fileName = writeJSON fileName $ ViewerConfig (gallerySubdir ++ "/") -- cgit v1.2.3