Deprecated

Coadjute

A generic build tool http://iki.fi/matti.niemenmaa/coadjute/

Latest on Hackage:0.1.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Matti Niemenmaa
Maintained by Matti Niemenmaa

Coadjute is a generic build tool, intended as an easier to use and more portable replacement for make. It's not tailored toward any particular language, and is not meant to replace tools which target a specific environment.

Portability is striven towards in two ways: - You don't have to deal with the idiosyncrasies of many make implementations (well, people don't, but they call their GNU Make files makefiles instead of GNUmakefiles, which causes misunderstandings). - You have Haskell at your disposal, and are encouraged to use that whenever possible instead of system-specific binaries like the POSIX commands we all know and love.

With support for: - Parallel task performing. - Advanced out-of-dateness detection: - Choice between timestamps and hashes. - Keeping track of what arguments have been passed. - Haskell!

Changes

0.1.1, 2011-03-17:
Updated dependencies, nothing more.

0.1.0, 2010-04-01:
Got rid of the regex-dfa dependency.

Dropped all the Datum stuff. New rule* signatures:
rule :: String -> [String] -> ([Source] -> Target -> IO ()) -> [([Source],Target)] -> Coadjute ()
ruleM :: String -> [String] -> ([Source] -> [Target] -> IO ()) -> [([Source],[Target])] -> Coadjute ()
rule' :: String -> ([Source] -> Target -> IO ()) -> [([Source],Target)] -> Coadjute ()
ruleM' :: String -> ([Source] -> [Target] -> IO ()) -> [([Source],[Target])] -> Coadjute ()

0.0.1, 2009-01-18:
Initial release.

Supported flags:
--version
--help
--verbose
--quiet
--parallel[=N]
--use-db
--no-use-db
--no-hashing

Functions:
coadjute :: Coadjute a -> IO a
rule :: String -> [String] -> ([Source] -> Target -> IO ()) -> [SingleDatum] -> Coadjute ()
ruleM :: String -> [String] -> ([Source] -> [Target] -> IO ()) -> [MultiDatum] -> Coadjute ()
sourceToDatum :: (Source -> ([Source], a)) -> [Source] -> [TaskDatum a]
rule' :: String -> ([Source] -> Target -> IO ()) -> [SingleDatum] -> Coadjute ()
ruleM' :: String -> ([Source] -> [Target] -> IO ()) -> [MultiDatum] -> Coadjute ()
sourceToDatum' :: (Source -> a) -> [Source] -> [TaskDatum a]
getUserArgs :: Coadjute [String]

Types:
data Coadjute a
type Source = FilePath
type Target = FilePath
data TaskDatum a
type SingleDatum = TaskDatum Target
type MultiDatum = TaskDatum [Target]

Dependencies: base, array, bytestring, containers, directory, filepath,
mtl, old-time, pretty, bytestring-csv, fgl, pureMD5,
regex-dfa, safe, utf8-string.
comments powered byDisqus