| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 18:02:13 GMT
X-Served-By: cache-dfw-kdal2120093-DFW, cache-bom-vanm7210032-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768672934.651986,VS0,VE298
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
nemesis: a task management tool for Haskell
[Skip to Readme]
nemesis: a task management tool for Haskell
Organize common shell tasks into a meaningful tree like structure with dependency tracking
[Skip to Readme]
Modules
[Index]
Downloads
- nemesis-2018.1.27.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 2009.6.12, 2009.6.13, 2009.6.13.1, 2009.6.13.2, 2009.6.14, 2009.6.14.1, 2009.6.14.2, 2009.6.14.3, 2009.6.24, 2009.6.25, 2009.8.4, 2009.8.16, 2009.8.17, 2009.8.18, 2009.10.7, 2010.10.4, 2010.10.4.1.1, 2011.6.12, 2011.6.19, 2011.10.12, 2012.5.24, 2012.5.24.1, 2012.12.18, 2013.6.13, 2013.6.16, 2013.6.22, 2013.7.27, 2014.5.19, 2015.5.4, 2016.3.19, 2018.1.27 |
|---|---|
| Change log | changelog.md |
| Dependencies | base (>4 && <=6), containers, directory, dlist, Glob (>=0.9), lens, mtl, process, time [details] |
| Tested with | ghc ==8.2.2 |
| License | BSD-3-Clause |
| Author | Jinjing Wang |
| Maintainer | Jinjing Wang <nfjinjing@gmail.com> |
| Uploaded | by JinjingWang at 2018-01-27T11:44:41Z |
| Category | Tools |
| Home page | https://github.com/nfjinjing/nemesis |
| Source repo | head: git clone https://github.com/nfjinjing/nemesis.git |
| Distributions | NixOS:2018.1.27 |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 23269 total (144 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2018-01-27 [all 1 reports] |
Readme for nemesis-2018.1.27
[back to package description]Nemesis: a task management tool for Haskell
Demo
import System.Nemesis
main = run $ do
clean
[ "**/*.hi"
, "**/*.o"
, "manifest"
]
task "dist" $ do
sh "cabal clean"
sh "cabal configure"
sh "cabal sdist"
task "i" (sh "ghci -isrc src/System/Nemesis.hs")
task "manifest" $ do
sh "find . | grep 'hs$' > manifest"
Tutorial
Install
cabal update
cabal install nemesis
DSL
Create a file named Nemesis
import System.Nemesis
import System.Nemesis.Utils ((-))
import Prelude hiding ((-))
main = run - do
-- desc is optional, it gives some description to the task
-- task syntax: task "keyword: space seperated dependencies" io-action
desc "Hunter attack macro"
task "attack: pet-attack auto-attack" (putStrLn "attack macro done!")
desc "Pet attack"
task "pet-attack: mark" - do
sh "echo 'pet attack'"
desc "Hunter's mark"
task "mark" - do
sh "echo \"casting hunter's mark\""
desc "Auto attack"
task "auto-attack" - do
sh "echo 'auto shoot'"
Run
runghc Nemesis
attack Hunter attack macro
auto-attack Auto attack
mark Hunter's mark
pet-attack Pet attack
runghc Nemesis attack
casting hunter's mark
pet attack
auto shoot
attack macro done!
Namespace
Create namespaces for tasks with the keyword namespace
import System.Nemesis
import System.Nemesis.Utils ((-))
import Prelude hiding ((-))
main = run - do
namespace "eat" - do
task "bread: salad" - putStrLn "eating bread"
task "salad: /drink/coke" - putStrLn "eating salad"
namespace "drink" - do
task "coke" - putStrLn "drinking coke"
Namespaces are referenced as path components.
runghc Nemesis bread
Nemesis: bread does not exist!
runghc Nemesis eat/bread
drinking coke
eating salad
eating bread
Hints
- alias
runghc Nemesisto something sweeter, e.g.n