๐Ÿ“ฆ amake / kaching

๐Ÿ“„ Makefile ยท 28 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28gems = $(shell sed -nE "s/.*spec.add_dependency '([^']+)'.*/\1/p" kaching.gemspec)

.PHONY: deps
deps: ## Install dependencies
	gem install bundler -v 2.7.2
	bundle install

.PHONY: test
test: ## Run all tests
test: test-rake test-typecheck

.PHONY: test-rake
test-rake:
	bundle exec rake

.PHONY: test-typecheck
test-typecheck:
	$(foreach _,$(gems),bundle exec yard gems $(_);)
	bundle exec solargraph typecheck --level typed

.PHONY: help
help: ## Show this help text
	$(info usage: make [target])
	$(info )
	$(info Available targets:)
	@awk -F ':.*?## *' '/^[^\t].+?:.*?##/ \
         {printf "  %-24s %s\n", $$1, $$2}' $(MAKEFILE_LIST)