Skip to content
Snippets Groups Projects
Commit 508f8885 authored by stuebinm's avatar stuebinm
Browse files

extra module for repository writeout

parent 5bb4079f
No related branches found
No related tags found
No related merge requests found
......@@ -6,17 +6,17 @@
{-# LANGUAGE TupleSections #-}
-- | Module that contains high-level checking for an entire directory
module CheckDir (recursiveCheckDir, writeAdjustedRepository) where
module CheckDir (recursiveCheckDir, DirResult(..)) where
import CheckMap (MapResult (mapresultAdjusted, mapresultProvides),
import CheckMap (MapResult (mapresultProvides),
loadAndLintMap, mapresultDepends)
import Control.Monad (void)
import Control.Monad.Extra (mapMaybeM)
import Data.Aeson (ToJSON, encodeFile, (.=))
import Data.Aeson (ToJSON, (.=))
import qualified Data.Aeson as A
import Data.Foldable (fold)
import Data.Functor ((<&>))
import Data.Map (Map, toList)
import Data.Map (Map)
import qualified Data.Map as M
import Data.Map.Strict (mapKeys, (\\))
import Data.Maybe (mapMaybe)
......@@ -206,8 +206,3 @@ recursiveCheckDir' prefix paths done acc = do
writeAdjustedRepository :: FilePath -> DirResult -> IO ()
writeAdjustedRepository outPath result =
mapM_
(\(path,out) -> encodeFile (outPath </> path) $ mapresultAdjusted out)
(toList $ dirresultMaps result)
......@@ -11,6 +11,7 @@ module CheckMap (loadAndLintMap, MapResult(..)) where
import Data.Aeson (ToJSON (toJSON))
import qualified Data.Aeson as A
import Data.Aeson.Types ((.=))
import Data.Functor ((<&>))
import Data.Map (Map, toList)
import qualified Data.Map as M
import Data.Maybe (mapMaybe)
......@@ -20,7 +21,6 @@ import qualified Data.Vector as V
import GHC.Generics (Generic)
import Data.Functor ((<&>))
import LintWriter (filterLintLevel, invertLintResult, lintToDep,
resultToAdjusted, resultToDeps,
resultToLints, resultToOffers, runLintWriter)
......
-- | Module for writing an already linted map Repository back out again.
module WriteRepo where
import CheckDir (DirResult (dirresultMaps))
import CheckMap (MapResult (mapresultAdjusted))
import Data.Aeson (encodeFile)
import Data.Map.Strict (toList)
import System.Directory.Extra (createDirectoryIfMissing)
import System.FilePath.Posix ((</>))
writeAdjustedRepository :: FilePath -> DirResult -> IO ()
writeAdjustedRepository outPath result = do
-- True here just means the equivalent of mkdir -p
createDirectoryIfMissing True outPath
-- write out all maps
mapM_
(\(path,out) -> encodeFile (outPath </> path) $ mapresultAdjusted out)
(toList $ dirresultMaps result)
-- TODO: copy all assets
......@@ -13,8 +13,8 @@ import qualified Data.ByteString.Lazy as LB
import Data.Maybe (fromMaybe)
import WithCli
import CheckDir (recursiveCheckDir,
writeAdjustedRepository)
import CheckDir (recursiveCheckDir)
import WriteRepo (writeAdjustedRepository)
import Types (Level (..))
import Util (printPretty)
......
......@@ -27,6 +27,7 @@ library
hs-source-dirs: lib
exposed-modules:
CheckMap
WriteRepo
CheckDir
LintWriter
Properties
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment