src_dir := ./src docs_dir := ./docs tests_dir := ./tests build_dir := ./build docs_build_dir := ./build/docs .PHONY: help tests docs all: man help: @echo Usage: make TARGET @echo @echo Available targets: @echo @echo 'help print this help message' @echo 'test run tests from $(tests_dir)' @echo 'lint run shellcheck' @echo 'man build manual pages from $(docs_dir)' @echo @echo See README.md for more info. test: # 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 man: build_dir # See rst2man(1), rst2html(1), # https://docutils.sourceforge.io/docs/index.html rst2man $(docs_dir)/boring-backup.ru.1.rst \ > $(docs_build_dir)/boring-backup.ru.1 sed -e 's/.SH NAME/.SH ИМЯ/' \ -e 's/.SH AUTHOR/.SH АВТОРЫ/' \ -e 's/.SH COPYRIGHT/.SH АВТОРСКИЕ ПРАВА/' \ -i $(docs_build_dir)/boring-backup.ru.1 gzip -9 $(docs_build_dir)/boring-backup.ru.1 build_dir: mkdir -p $(build_dir) mkdir -p $(docs_build_dir)