shcheck/Makefile

39 lines
806 B
Makefile

VERSION=1.1
NAME=shcheck
CHECKS=$(wildcard checks/*.sh)
DIST=$(NAME).sh
DIST_EXAMPLE=$(NAME)_example.sh
PKG=$(NAME)-$(VERSION)
PKG_GZ=$(PKG).tar.gz
PKG_BZ2=$(PKG).tar.bz2
PKGS=$(PKG_GZ) $(PKG_BZ2)
all: lint
$(PKGS): $(DIST) $(DIST_EXAMPLE) README
tar --xform='s|^|./$(NAME)-$(VERSION)/|' -acvf "$@" $^
$(DIST).bz2: $(DIST)
tar -acvf
$(DIST_EXAMPLE): example.sh
sed 's|^\. \./check.sh$$|. ./$(DIST)|' < $^ > $@; \
chmod +x $@; \
$(MAKE) lint_dist
$(DIST): check.sh $(CHECKS)
grep -Ev '^\. \./checks/.*\.sh$$' > $@ < $<; \
cat $(CHECKS) | grep -v '^#' >> $@;
lint_dist: $(DIST) $(DIST_EXAMPLE)
shellcheck $^
lint: example.sh check.sh $(CHECKS)
shellcheck -x example.sh check.sh && \
[ -f "$(DIST)" ] && $(MAKE) lint_dist
.PHONY: clean
clean:
-rm -vf $(DIST) $(DIST_EXAMPLE) $(PKGS)