1 | usage :
|
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 |
|
10 | COFFEE=./node_modules/.bin/coffee
|
11 | MOCHA=../node_modules/.bin/mocha
|
12 | TESTS:=../test/**/*.coffee
|
13 | TEST_REPORTER=tap
|
14 | NPM_ARGS=
|
15 | SRC = $(shell find src -name '*.coffee' -type f | sort)
|
16 | LIB = $(SRC:src/%.coffee=lib/%.js)
|
17 |
|
18 | clean:
|
19 | rm -rf node_modules
|
20 | rm -rf lib
|
21 |
|
22 | build: $(LIB) node_modules
|
23 |
|
24 | lib:
|
25 | mkdir lib
|
26 |
|
27 | lib/%.js: src/%.coffee lib
|
28 | dirname "$@" | xargs mkdir -p
|
29 | $(COFFEE) --js <"$<" >"$@"
|
30 |
|
31 | node_modules :
|
32 | $(MAKE) setup
|
33 |
|
34 | setup :
|
35 | @rm -rf node_modules
|
36 | @echo npm $(NPM_ARGS) install
|
37 | @npm $(NPM_ARGS) install
|
38 |
|
39 | generate :
|
40 | @NODE_ENV=development $(COFFEE) ./src/generate.coffee
|
41 |
|
42 | VERSION = $(shell node -pe 'require("./package.json").version')
|
43 | release-patch: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "patch")')
|
44 | release-minor: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "minor")')
|
45 | release-major: NEXT_VERSION = $(shell node -pe 'require("semver").inc("$(VERSION)", "major")')
|
46 | release-patch: release
|
47 | release-minor: release
|
48 | release-major: release
|
49 |
|
50 | release: 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
|
65 | test : 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)
|