From 6bc29b5db2c8de62e2d9f21c25fa8dcd1ec5a75b Mon Sep 17 00:00:00 2001 From: pacien Date: Fri, 27 Dec 2019 10:32:35 +0100 Subject: compiler: extracting funcs --- compiler/src/Resource.hs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'compiler/src/Resource.hs') diff --git a/compiler/src/Resource.hs b/compiler/src/Resource.hs index 83f7438..a8be913 100644 --- a/compiler/src/Resource.hs +++ b/compiler/src/Resource.hs @@ -28,13 +28,13 @@ module Resource , ItemProcessor , ThumbnailProcessor , buildResourceTree - , flattenResourceTree - , outputDiff + , cleanupResourceDir ) where import Data.Function ((&)) -import Data.List ((\\), subsequences) +import Data.List ((\\), subsequences, sortBy) +import Data.Ord (comparing) import Data.Maybe (mapMaybe) import Files import Input (InputTree(..), Sidecar) @@ -104,3 +104,11 @@ outputDiff resources ref = fsPaths :: FSNode -> [Path] fsPaths = map nodePath . tail . flattenDir + +cleanupResourceDir :: ResourceTree -> FileName -> IO () +cleanupResourceDir resourceTree outputDir = + readDirectory outputDir + >>= return . outputDiff resourceTree . root + >>= return . sortBy (flip $ comparing length) -- nested files before dirs + >>= return . map (localPath . (/>) outputDir) + >>= mapM_ remove -- cgit v1.2.3