Knega
Minimalist cli tool for building many similar components in a monorepo. Calculates a hash of the file content of a component and checks for existing artifacts with that hash to determine whether to build the component.
Example configurations
Example configurations can be found in examples/, .knega.root.yml should be at project root and .component.yml should exist for every component. Check examples/full for an example with sample components (used by tests).
Installation
Download fom releases, unpack and execute. Linux example:
KNEGA_VERSION=0.1.0
curl -LO https://github.com/kristofferlind/knega/releases/download/v${KNEGA_VERSION}/knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
tar -zxvf knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
rm knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
# use as ./knega or mv ./knega some-bin-dir according to taste
Usage
knega changed/all <action>
where action is a set of commands defined in configuration. It will execute those commands for all or changed components with that action defined.
Development
If you have direnv and nix package manager installed. You should be able to just start using commands found in Makefile. If you don't want those you can look at shell.nix to see what's needed.