shake-dhall 0.1.0.0 → 0.1.1.0
raw patch · 3 files changed
+29/−6 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Development.Shake.Dhall: dhallDeps :: FilePath -> Action [FilePath]
+ Development.Shake.Dhall: needDhallCli :: [FilePath] -> Action ()
Files
- CHANGELOG.md +4/−0
- shake-dhall.cabal +1/−1
- src/Development/Shake/Dhall.hs +24/−5
CHANGELOG.md view
@@ -1,5 +1,9 @@ # shake-dhall +## 0.1.1.0++ * Add functions `dhallDeps` and `needDhallCli` in `Development.Shake.Dhall`+ ## 0.1.0.0 Initial release
shake-dhall.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: shake-dhall-version: 0.1.0.0+version: 0.1.1.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2020 Vanessa McHale
src/Development/Shake/Dhall.hs view
@@ -1,13 +1,32 @@ module Development.Shake.Dhall ( needDhall+ , needDhallCli+ , dhallDeps ) where +import Control.Monad (filterM, (<=<)) import Control.Monad.IO.Class (liftIO) import Data.Containers.ListUtils (nubOrd)-import Development.Shake (Action, need)+import Development.Shake (Action, Stdout (Stdout), command,+ doesFileExist, need) import Dhall.Dep --- | Need some @.dhall@ files and imported dependencies+-- | 'need' some @.dhall@ files and imported dependencies needDhall :: [FilePath] -> Action ()-needDhall fps = do- transDeps <- liftIO (concat <$> traverse getAllFileDeps fps)- need (fps ++ nubOrd transDeps)+needDhall fps =+ need =<< liftIO (nubOrd . concat . (fps:) <$> traverse getAllFileDeps fps)++-- | Same as 'needDhallCli' but shells out to the command-linen executable+--+-- @since 0.1.1.0+needDhallCli :: [FilePath] -> Action ()+needDhallCli =+ need . concat <=< traverse dhallDeps++-- | Uses @dhall resolve --transitive-dependencies@ to work; command-line tool+-- must be installed.+--+-- @since 0.1.1.0+dhallDeps :: FilePath -> Action [FilePath]+dhallDeps inp = do+ (Stdout out) <- command [] "dhall" ["resolve", "--transitive-dependencies", "--file", inp]+ (inp:) <$> filterM doesFileExist (lines out)