mirror of
https://github.com/TangentFoxy/lua-date.git
synced 2025-07-27 18:42:18 +00:00
92 lines
2.8 KiB
Makefile
92 lines
2.8 KiB
Makefile
# additional Busted options to pass
|
|
BUSTED:=
|
|
|
|
# SCM rockspec label; scm/cvs/dev
|
|
SCM_LABEL:=$(shell cat *.rockspec | grep "local package_version" | sed "s/ //g" | sed "s/localpackage_version=//g" | sed "s/\"//g")
|
|
ROCK_REV:=$(shell cat *.rockspec | grep "local rockspec_revision" | sed "s/ //g" | sed "s/localrockspec_revision=//g" | sed "s/\"//g")
|
|
ROCK_NAME:=$(shell cat *.rockspec | grep "local package_name" | sed "s/ //g" | sed "s/localpackage_name=//g" | sed "s/\"//g")
|
|
ROCKSPEC:=${ROCK_NAME}-${SCM_LABEL}-${ROCK_REV}.rockspec
|
|
TAB=$(shell printf "\t")
|
|
|
|
# dev/test dependencies; versions can be pinned. Example: "ldoc 1.4.6"
|
|
DEV_ROCKS = "busted" "luacheck" "luacov"
|
|
|
|
|
|
target_not_specified: help
|
|
@exit 1
|
|
|
|
|
|
help:
|
|
@echo "Available make targets for ${ROCK_NAME}:"
|
|
@echo ""
|
|
@echo "install: uses LuaRocks to install ${ROCK_NAME}"
|
|
@echo "uninstall: uninstalls ALL versions of ${ROCK_NAME} (using LuaRocks with"
|
|
@echo " the '--force' flag)"
|
|
@echo "clean: removes LuaCov output and packed rocks"
|
|
@echo "test: runs the test suite using Busted"
|
|
@echo "testinst: installs ${ROCK_NAME} and runs tests using the installed version"
|
|
@echo " (this modifies the local installation, but also tests the"
|
|
@echo " .rockspec file). This is best used when testing in CI."
|
|
@echo "lint: will validate all 'rockspec' files using LuaRocks, and the"
|
|
@echo " '.lua' files with LuaCheck"
|
|
@echo "dev: installs the development dependencies (Busted, LuaCheck, etc.)"
|
|
@echo "help: displays this list of make targets"
|
|
@echo ""
|
|
|
|
|
|
install: luarocks
|
|
luarocks make
|
|
|
|
|
|
uninstall: luarocks
|
|
if (luarocks list --porcelain ${ROCK_NAME} | grep "^${ROCK_NAME}${TAB}" | grep -q "installed") ; then \
|
|
luarocks remove ${ROCK_NAME} --force; \
|
|
fi;
|
|
|
|
|
|
# note: restore the docs to the last committed version
|
|
clean: clean_luacov clean_luarocks
|
|
|
|
|
|
.PHONY: test
|
|
test: clean_luacov dev
|
|
busted ${BUSTED}
|
|
|
|
|
|
# test while having the code installed; also tests the rockspec, but
|
|
# this will modify the local luarocks installation/tree!!
|
|
.PHONY: testinst
|
|
testinst: clean_luacov dev uninstall install
|
|
busted --lpath="" --cpath="" ${BUSTED}
|
|
|
|
|
|
.PHONY: lint
|
|
lint: dev
|
|
@echo "luarocks lint ..."
|
|
@for spec in $(shell find . -type f -name "*.rockspec") ; do \
|
|
(luarocks lint $$spec && echo "$$spec [OK]") || (echo "$$spec [NOK]"; exit 1); \
|
|
done
|
|
luacheck .
|
|
|
|
|
|
.PHONY: dev
|
|
dev: luarocks
|
|
@for rock in $(DEV_ROCKS) ; do \
|
|
(luarocks list --porcelain $$rock | grep -q "installed") || (luarocks install $$rock || exit 1); \
|
|
done;
|
|
|
|
|
|
.PHONY: clean_luarocks
|
|
clean_luarocks:
|
|
$(RM) *.rock
|
|
|
|
|
|
.PHONY: clean_luacov
|
|
clean_luacov:
|
|
$(RM) luacov.report.out luacov.stats.out
|
|
|
|
|
|
.PHONY: luarocks
|
|
luarocks:
|
|
@which luarocks > /dev/null || (echo "LuaRocks was not found. Please install and/or make available in the path." && exit 1)
|