diff --git a/lib/CheckDir.hs b/lib/CheckDir.hs index 728088726f7067f0d787efbe33cc92feb09894c1..d65181533128692bbad42514f75b84a1027387f0 100644 --- a/lib/CheckDir.hs +++ b/lib/CheckDir.hs @@ -8,28 +8,28 @@ -- | Module that contains high-level checking for an entire directory module CheckDir (recursiveCheckDir) where -import CheckMap (MapResult (mapresultProvides), - loadAndLintMap, mapresultDepends) -import Control.Monad ( void, foldM ) -import Control.Monad.Extra (mapMaybeM) -import Data.Aeson (ToJSON, (.=)) -import qualified Data.Aeson as A -import Data.Map (Map) -import qualified Data.Map as M -import Data.Map.Strict (mapKeys, (\\)) -import Data.Maybe (mapMaybe) -import Data.Text (Text) -import qualified Data.Text as T -import GHC.Generics (Generic) -import Paths (normalise, normaliseWithFrag) -import System.FilePath (splitPath, (</>)) -import qualified System.FilePath as FP -import System.FilePath.Posix (takeDirectory) -import Types (Dep (LocalMap, Local), Level) -import Util (PrettyPrint (prettyprint)) -import Data.Foldable (fold) -import Data.Functor ((<&>)) -import System.Directory.Extra (doesFileExist) +import CheckMap (MapResult (mapresultProvides), + loadAndLintMap, mapresultDepends) +import Control.Monad (void) +import Control.Monad.Extra (mapMaybeM) +import Data.Aeson (ToJSON, (.=)) +import qualified Data.Aeson as A +import Data.Foldable (fold) +import Data.Functor ((<&>)) +import Data.Map (Map) +import qualified Data.Map as M +import Data.Map.Strict (mapKeys, (\\)) +import Data.Maybe (mapMaybe) +import Data.Text (Text) +import qualified Data.Text as T +import GHC.Generics (Generic) +import Paths (normalise, normaliseWithFrag) +import System.Directory.Extra (doesFileExist) +import System.FilePath (splitPath, (</>)) +import qualified System.FilePath as FP +import System.FilePath.Posix (takeDirectory) +import Types (Dep (Local, LocalMap), Level) +import Util (PrettyPrint (prettyprint)) -- based on the startling observation that Data.Map has lower complexity @@ -42,8 +42,8 @@ listFromSet = map fst . M.toList -- | Result of linting an entire directory / repository data DirResult = DirResult - { dirresultMaps :: Map FilePath MapResult - , dirresultDeps :: [MissingDep] + { dirresultMaps :: Map FilePath MapResult + , dirresultDeps :: [MissingDep] , dirresultMissingAssets :: [MissingAsset] } deriving (Generic) @@ -152,7 +152,7 @@ missingAssets prefix res = (\case Local relpath -> let asset = normalise (takeDirectory path) relpath in doesFileExist (prefix </> asset) <&> - \case True -> Nothing + \case True -> Nothing False -> Just $ MissingDep (T.pack asset) [path] _ -> pure Nothing) (mapresultDepends mapres) diff --git a/lib/CheckMap.hs b/lib/CheckMap.hs index 0bdfa353001d5fed30b455088d335b1810ffd250..8b4dca83867ff4b9f65ae03e87d54877d5f3e84e 100644 --- a/lib/CheckMap.hs +++ b/lib/CheckMap.hs @@ -62,7 +62,7 @@ loadAndLintMap path depth = loadTiledmap path >>= pure . \case path <> ": Fatal: " <> err ] } - IOErr err -> Nothing + IOErr _ -> Nothing Loaded waMap -> Just (runLinter waMap depth) diff --git a/lib/Tiled2.hs b/lib/Tiled2.hs index 7e462cc201f49bad0042719f76661e5253546668..724be1d20067ad7985d6a4f85220635263b6ec90 100644 --- a/lib/Tiled2.hs +++ b/lib/Tiled2.hs @@ -13,24 +13,23 @@ {-# LANGUAGE ScopedTypeVariables #-} module Tiled2 where -import Control.Applicative ((<|>)) -import Control.Exception (try) -import Control.Exception.Base (SomeException) -import Control.Monad (forM) -import Data.Aeson hiding (Object) -import qualified Data.Aeson as A -import Data.Aeson.Types (Parser, typeMismatch) -import qualified Data.ByteString as BS -import qualified Data.ByteString.Lazy as LB -import Data.Either.Combinators (mapLeft) -import Data.Functor ((<&>)) -import Data.Map (Map) -import qualified Data.Map as M -import Data.Maybe (fromMaybe) -import Data.Text (Text) -import Data.Vector (Vector) -import GHC.Exts (fromList, toList) -import GHC.Generics (Generic) +import Control.Applicative ((<|>)) +import Control.Exception (try) +import Control.Exception.Base (SomeException) +import Control.Monad (forM) +import Data.Aeson hiding (Object) +import qualified Data.Aeson as A +import Data.Aeson.Types (Parser, typeMismatch) +import qualified Data.ByteString as BS +import qualified Data.ByteString.Lazy as LB +import Data.Functor ((<&>)) +import Data.Map (Map) +import qualified Data.Map as M +import Data.Maybe (fromMaybe) +import Data.Text (Text) +import Data.Vector (Vector) +import GHC.Exts (fromList, toList) +import GHC.Generics (Generic) -- | A globally indexed identifier. diff --git a/tiled-hs.cabal b/walint.cabal similarity index 92% rename from tiled-hs.cabal rename to walint.cabal index 84f8a4baacf1a98887e0f487881d748f7f98f314..1de7798761383fd7d277bd951c1892972db77c9b 100644 --- a/tiled-hs.cabal +++ b/walint.cabal @@ -1,5 +1,5 @@ cabal-version: 2.4 -name: tiled-hs +name: walint version: 0.1.0.0 -- A short (one-line) description of the package. @@ -45,15 +45,15 @@ library either, filepath, getopt-generics, - regex-tdfa ^>= 1.3.1.1, + regex-tdfa, extra -- TODO: move more stuff into lib, these dependencies are silly -executable tiled-hs +executable walint main-is: Main.hs ghc-options: -Wall build-depends: base ^>=4.14.1.0, - tiled-hs, + walint, getopt-generics, aeson, aeson-pretty,