UNPKG

2.07 kBPlain TextView Raw
1usage :
2 @echo ''
3 @echo 'Core tasks : Description'
4 @echo '-------------------- : -----------'
5 @echo 'make generate : Generate the sitemaps in development environment'
6 @echo 'make test : Run the tests'
7 @echo 'make release VERSION=x.x.x : Release a new version of the npm module'
8 @echo ''
9
10COFFEE=./node_modules/.bin/coffee
11MOCHA=../node_modules/.bin/mocha
12TESTS:=../test/**/*.coffee
13TEST_REPORTER=tap
14NPM_ARGS=
15SRC = $(shell find src -name '*.coffee' -type f | sort)
16LIB = $(SRC:src/%.coffee=lib/%.js)
17
18clean:
19 rm -rf node_modules
20 rm -rf lib
21
22build: $(LIB) node_modules
23
24lib:
25 mkdir lib
26
27lib/%.js: src/%.coffee lib
28 dirname "$@" | xargs mkdir -p
29 $(COFFEE) --js <"$<" >"$@"
30
31node_modules :
32 $(MAKE) setup
33
34setup :
35 @rm -rf node_modules
36 @echo npm $(NPM_ARGS) install
37 @npm $(NPM_ARGS) install
38
39generate :
40 @NODE_ENV=development $(COFFEE) ./src/generate.coffee
41
42VERSION = $(shell node -pe 'require("./package.json").version')
43release-patch: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "patch")')
44release-minor: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "minor")')
45release-major: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "major")')
46release-patch: release
47release-minor: release
48release-major: release
49
50release: clean setup build test
51 @printf "Current version is $(VERSION). This will publish version $(NEXT_VERSION). Press [enter] to continue." >&2
52 @read
53 node -e '\
54 var j = require("./package.json");\
55 j.version = "$(NEXT_VERSION)";\
56 var s = JSON.stringify(j, null, 2);\
57 require("fs").writeFileSync("./package.json", s);'
58 git commit package.json -m 'Version $(NEXT_VERSION)'
59 git tag -a "v$(NEXT_VERSION)" -m "Version $(NEXT_VERSION)"
60 git push --tags origin HEAD:master
61 npm publish
62
63
64.PHONY: test
65test : node_modules
66 @echo TESTS = $(TESTS)
67 @cd test; NODE_PATH=../src NODE_ENV=test $(MOCHA) --recursive --compilers coffee:coffee-script-redux/register $(TESTS) --reporter $(TEST_REPORTER)