shake-plus: Re-export of Shake using well-typed paths and ReaderT.

[ development, library, mit, shake ] [ Propose Tags ]

Re-export of Shake using well-typed paths and ReaderT. This is an early release so some things may be missing or broken but so far the conveniences have been worth it.


[Skip to Readme]
Versions [faq] 0.0.1.0, 0.0.1.1, 0.0.1.2, 0.0.2.0, 0.0.2.1, 0.0.2.2, 0.0.3.0, 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.1.0, 0.1.2.0, 0.1.3.0, 0.1.4.0, 0.1.4.1, 0.1.5.0, 0.1.6.0, 0.1.7.0, 0.1.8.0, 0.1.9.0, 0.1.10.0, 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.3.1.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), extra, path, rio, shake [details]
License MIT
Copyright 2020 Daniel Firth
Author Daniel Firth
Maintainer dan.firth@homotopic.tech
Category development, shake
Uploaded by locallycompact at 2020-05-05T15:34:21Z
Distributions NixOS:0.1.7.0
Downloads 3567 total (1244 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2020-05-05 [all 3 reports]

Modules

  • Development
    • Shake
      • Development.Shake.Plus
        • Development.Shake.Plus.Cache
        • Development.Shake.Plus.Config
        • Development.Shake.Plus.Core
        • Development.Shake.Plus.Database
        • Development.Shake.Plus.Directory
        • Development.Shake.Plus.Env
        • Development.Shake.Plus.File
        • Development.Shake.Plus.FileRules
        • Development.Shake.Plus.Oracle
        • Development.Shake.Plus.Temp

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for shake-plus-0.0.1.1

[back to package 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
  • New type classes MonadAction,MonadUnliftAction and MonadRules with stock ReaderT transformers.
  • Text instead of String wherever it is appropriate.

Unlifting Actions 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.