nemesis: a rake like task management tool

[ bsd3, library, tools ] [ Propose Tags ]

a rake like task management tool


[Skip to Readme]
Versions [faq] 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.*), containers, data-default, haskell98, mps (>=2009.5.13), mtl, process [details]
License BSD-3-Clause
Author Wang, Jinjing
Maintainer Wang, Jinjing <nfjinjing@gmail.com>
Category Web
Home page http://github.com/nfjinjing/nemesis
Uploaded by JinjingWang at Fri Jun 12 05:43:45 UTC 2009
Distributions NixOS:2018.1.27
Executables nemesis
Downloads 12312 total (269 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for nemesis-2009.6.12

[back to package description]

Nemesis: a rake like task management tool for haskell

Tutorial

DSL

in nem.hs

nemesis = do
  task "clean: hello-world" (print "cleaning")

  task "hello-world: ls" $ do
    sh "echo HELLO"

  task "ls" $ do
    sh "ls"

run nemesis

It will generate a bin nem inside your current folder.

Run

run ./nem

      clean: hello-world ls
hello-world: ls
         ls:

run ./nem ls

Advance usage

Use LANGUAGEW

Use a separator below language extensions, e.g.

{-# LANGUAGE QuasiQuotes #-}

-- Nem

nemesis = do

  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"

currently the separator -- Nem is hard coded

Build it yourself

Example:

module Main where

import System.Nemesis

nemesis = do
  task "i" (sh "ghci -isrc src/System/Nemesis.hs")
    
main = nemesis