shellspec/shellspec

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
PREFIX ?= /usr/local
BINDIR := $(PREFIX)/bin
LIBDIR := $(PREFIX)/lib

GETOPTIONSCLI := getoptions-cli --indent=2 --shellcheck
OPTPARSERDIR := lib/libexec/optparser

.PHONY: coverage test dist build release

all: test check

dist: LICENSE shellspec lib libexec
    tar -czf shellspec-dist.tar.gz $^ --transform 's,^,shellspec/,'

install:
    install -d "$(BINDIR)" "$(LIBDIR)"
    install stub/shellspec "$(BINDIR)/shellspec"
    find lib libexec -type d -exec install -d "$(LIBDIR)/shellspec/{}" \;
    find LICENSE lib -type f -exec install -m 644 {} "$(LIBDIR)/shellspec/{}" \;
    find shellspec libexec -type f -exec install {} "$(LIBDIR)/shellspec/{}" \;

uninstall:
    rm -rf "$(BINDIR)/shellspec" "$(LIBDIR)/shellspec"

package:
    contrib/make_package_json.sh > package.json

optparser:
    @printf "getoptions: "
    @$(GETOPTIONSCLI) --version
    $(GETOPTIONSCLI) $(OPTPARSERDIR)/parser_definition.sh \
        optparser_parse SHELLSPEC optparser_error \
        > $(OPTPARSERDIR)/parser_definition_generated.sh

demo:
    ttyrec -e "ghostplay contrib/demo.sh"
    seq2gif -l 5000 -h 32 -w 139 -p win -i ttyrecord -o docs/demo.gif
    gifsicle -i docs/demo.gif -O3 -o docs/demo.gif

coverage:
    contrib/coverage.sh --pull

check:
    contrib/check.sh --pull

metrics:
    contrib/metrics.sh

build:
    contrib/build.sh .dockerhub/Dockerfile         shellspec
    contrib/build.sh .dockerhub/Dockerfile         shellspec kcov
    contrib/build.sh .dockerhub/Dockerfile.debian  shellspec-debian
    contrib/build.sh .dockerhub/Dockerfile.debian  shellspec-debian kcov
    contrib/build.sh .dockerhub/Dockerfile.scratch shellspec-scratch

test:
    ./shellspec

test_all:
    contrib/all.sh shellspec

test_in_docker:
    contrib/test_in_docker.sh --pull dockerfiles/* -- shellspec -j 2

release:
    contrib/release.sh