Skip to content

Latest commit

 

History

History
47 lines (37 loc) · 1.13 KB

README.md

File metadata and controls

47 lines (37 loc) · 1.13 KB

ebro

Warning

Work in progress. Undocumented.

ebro is a task runner. A tool for defining tasks with their requirements and executing them in the correct order.

It's configured using Yaml files (sorry) and the tasks are shell scripts interpreted with mvdan/sh.

tasks:
  default:
    requires: [echoer, producer]

  echoer:
    script: |
      cat cache/A.txt
      cat cache/B.txt
    when:
      output_changes: |
        cat cache/A.txt
        cat cache/B.txt

  producer:
    requires: [produce_a, produce_b]

  produce_a:
    requires: [cache_dir]
    required_by: [echoer]
    script: echo 'this is A'>cache/A.txt
    when:
      check_fails: test -f cache/A.txt

  produce_b:
    requires: [cache_dir]
    required_by: [echoer]
    script: echo 'this is B'>cache/B.txt
    when:
      check_fails: test -f cache/B.txt

  cache_dir:
    script: mkdir -p cache
    when:
      check_fails: test -d cache

It's heavily inspired in go-task/task, but originally built around a personal need for configuring servers, although it's not tied to this use case.