packages feed

shake-dhall-0.1.0.0: src/Development/Shake/Dhall.hs

module Development.Shake.Dhall ( needDhall
                               ) where

import           Control.Monad.IO.Class    (liftIO)
import           Data.Containers.ListUtils (nubOrd)
import           Development.Shake         (Action, need)
import           Dhall.Dep

-- | Need some @.dhall@ files and imported dependencies
needDhall :: [FilePath] -> Action ()
needDhall fps = do
    transDeps <- liftIO (concat <$> traverse getAllFileDeps fps)
    need (fps ++ nubOrd transDeps)