homepage: ''
changelog-type: markdown
hash: 76e27c6398edc40e8318670c0545081fa1548722787dc35ce6c2cebd3e40b5cd
test-bench-deps: {}
maintainer: dan.firth@homotopic.tech
synopsis: Re-export of Shake using well-typed paths and ReaderT.
changelog: |
  # Changelog for shake-plus

  ## v0.0.1.0

  * Initial sketch of shake-plus with reexported functions. Mostly oracles,
    filepaths and directory functions using
    [Path](https://hackage.haskell.org/package/path), and `MonadAction`,
    `MonadUnliftAction` and `MonadRules` with `ReaderT` transformers in a similar
    style to [RIO](https://hackage.haskell.org/package/rio)
basic-deps:
  shake: -any
  rio: -any
  extra: -any
  path: -any
  base: '>=4.7 && <5'
all-versions:
- 0.0.1.0
- 0.0.1.1
author: Daniel Firth
latest: 0.0.1.1
description-type: markdown
description: |
  # Shake+ - Super Powered Shake

  Attempt at a batteries included Shake. We reexport replacements for the main
  utility functions of Shake with the following adjustments whereever possible.

  * Well-typed paths using the [path](https://hackage.haskell.org/package/path)
  * New type classes `MonadAction`,`MonadUnliftAction` and `MonadRules` with
    stock `ReaderT` transformers.
  * `Text` instead of `String` wherever it is appropriate.

  Unlifting `Action`s is a challenge when we cross monad boundaries (from
  `Action` to `Rules`), and so some functions are hard coded against the
  `RAction` type, which is a hardcoded newtype `ReaderT r Action a`. This is
  annoying, but it's sufficient to add your own logging and reader lenses.  It
  may be possible to generalize this with some unlifting contortion but so far I
  haven't been able to figure it out.

  The main entry point ot this library is the `runShakePlus` function, which
  collapses a `ReaderT r Rules ()` to a `Rules ()` and passes the environment to
  each underlying `RAction`.

  This is an early release and a lot of things may be missing or broken, but so
  far the conveniences have been worth it. Until it's stable/complete you probaly
  want to `import qualified Development.Shake` to deal with any missing parts.
license-name: MIT

Update from Hackage at 2020-05-05T15:39:18Z
Update from Hackage at 2020-05-05T15:39:18Z
