rhiz 0.4.0

A deliberately minimal task runner.


A deliberately minimal task runner.

This is an in-progress-pre-alpha project.

Rhiz executes tasks defined in a "Rhizfile", containing task descriptions with a Lisp like syntax.

(task "hello"
  (log "Rhiz says hello"))

;; Comments start with a semicolon
(task "fizzbuzz"
  "Tasks can have an optional description"
  (exec fizzbuzz.exe))

(task "clean"
  (delete "./output"))


  • log: Print a message.
  • exec: Run an external command.
  • empty-dir: Create an empty directory, or delete an existing directory's contents.
  • delete: Delete a file (if it exists).
  • copy: Copy a file; wont' overwrite an existing file.
  • rec-copy: Recursively copy one directory's contents into another.
  • par: Perform a set of commands in parallel.

TODO (Code)

  • Set up CI?
  • Migrate to GitHub?

TODO (Documentation)

  • Overview (motivation, high-level operation)
  • Reference information on each function (e.g. "do copy and rec-copy follow symlinks")
  • Example Rhizfile(s) (with equivalent script/makefile?)