src_dir := ./src docs_dir := ./docs tests_dir := ./tests build_dir := ./build docs_build_dir := ./build/docs .PHONY: help tests docs help: @echo Usage: make TARGET @echo @echo Available targets: @echo @echo 'help print this help message' @echo 'tests run tests from $(tests_dir)' @echo 'lint run shellcheck' @echo 'docs build documentation from $(docs_dir)' @echo @echo See README.md for more info. tests: # See bats(1), https://bats-core.readthedocs.io/en/latest/index.html for test in $(tests_dir)/*.bats; do bats --verbose-run --print-output-on-failure "$$test"; done lint: shellcheck $(src_dir)/boring-backup shellcheck $(src_dir)/lib/*.sh shellcheck $(src_dir)/lib/handlers/sources/*.sh shellcheck $(src_dir)/lib/handlers/targets/*.sh docs: builddir # See rst2man(1), rst2html(1), https://docutils.sourceforge.io/docs/index.html rst2man $(docs_dir)/boring-backup.1.rst | gzip -9 > $(docs_build_dir)/boring-backup.1.gz rst2html $(docs_dir)/boring-backup.1.rst > $(docs_build_dir)/boring-backup.1.html builddir: mkdir -p $(build_dir) mkdir -p $(docs_build_dir)