GNU make snippets manager
Maker provides CLI tools to manage and use GNU make-compliant snippet files, which contain rules to deal with specific domains such as programming language toolchains or helper tools as docker, linters, dependency injectors (google wire, uber fx, etc) that are needed during any stage of a repository management.
Those snippet files rely on a convention-over-configuration style that uses variables that can be either set before the include happens or overridden later on. They also should not be modified directly on the client repositories, as they are meant to be updated with the upstream version.
- GNU make is true to the Unix philosophy: it does one thing, and does it well (since 1976!)
- newer language tool kits (2010+ at least) often include their own tool chain, which adds extra commands and flags to learn and repeat yourself when using them
- convention-over-configuration for common/best practices, which speed up project creation, maintenance and usage
Clone the repository and use make
/make all
to build, lint, test and generate
coverage information.
To contribute please make sure you have installed the pre-commit hooks before committing.
For building locally:
- Golang 1.15+
- GNU Make (optional)
For contributing:
pre-commit
toolgolangci-lint
binary on pathhadolint
binary on path
Install pre-commit using your package manager and then run pre-commit install
once to configure the repository hooks. You can then commit normally.
All tests can be run using make test
. Coverage is done through make coverage
.
Add notes about how to use the system.
- @wwmoraes - Idea & Initial work
- Hat tip to anyone whose code was used
- Inspiration
- References