root / HServer / 00.Server / 00.Program / node_modules / bunyan / Makefile
이력 | 보기 | 이력해설 | 다운로드 (5.54 KB)
| 1 | 39 | HKM | |
|---|---|---|---|
| 2 | #---- Tools |
||
| 3 | |||
| 4 | NODEUNIT := ./node_modules/.bin/nodeunit |
||
| 5 | SUDO := sudo |
||
| 6 | ifeq ($(shell uname -s),SunOS) |
||
| 7 | # On SunOS (e.g. SmartOS) we expect to run the test suite as the |
||
| 8 | # root user -- necessary to run dtrace. Therefore `pfexec` isn't |
||
| 9 | # necessary. |
||
| 10 | SUDO := |
||
| 11 | endif |
||
| 12 | DTRACE_UP_IN_HERE= |
||
| 13 | ifeq ($(shell uname -s),SunOS) |
||
| 14 | DTRACE_UP_IN_HERE=1 |
||
| 15 | endif |
||
| 16 | ifeq ($(shell uname -s),Darwin) |
||
| 17 | DTRACE_UP_IN_HERE=1 |
||
| 18 | endif |
||
| 19 | NODEOPT ?= $(HOME)/opt |
||
| 20 | |||
| 21 | |||
| 22 | #---- Files |
||
| 23 | |||
| 24 | JSSTYLE_FILES := $(shell find lib test tools examples -name "*.js") bin/bunyan |
||
| 25 | # All test files *except* dtrace.test.js. |
||
| 26 | NON_DTRACE_TEST_FILES := $(shell ls -1 test/*.test.js | grep -v dtrace | xargs) |
||
| 27 | |||
| 28 | |||
| 29 | #---- Targets |
||
| 30 | |||
| 31 | all $(NODEUNIT): |
||
| 32 | npm install $(NPM_INSTALL_FLAGS) |
||
| 33 | |||
| 34 | # Ensure all version-carrying files have the same version. |
||
| 35 | .PHONY: versioncheck |
||
| 36 | versioncheck: |
||
| 37 | @echo version is: $(shell cat package.json | json version) |
||
| 38 | [[ `cat package.json | json version` == `grep '^## ' CHANGES.md | head -2 | tail -1 | awk '{print $$2}'` ]]
|
||
| 39 | [[ `cat package.json | json version` == `grep '^var VERSION' bin/bunyan | awk -F"'" '{print $$2}'` ]]
|
||
| 40 | [[ `cat package.json | json version` == `grep '^var VERSION' lib/bunyan.js | awk -F"'" '{print $$2}'` ]]
|
||
| 41 | @echo Version check ok. |
||
| 42 | |||
| 43 | .PHONY: cutarelease |
||
| 44 | cutarelease: check |
||
| 45 | [[ -z `git status --short` ]] # If this fails, the working dir is dirty. |
||
| 46 | @which json 2>/dev/null 1>/dev/null && \ |
||
| 47 | ver=$(shell json -f package.json version) && \ |
||
| 48 | name=$(shell json -f package.json name) && \ |
||
| 49 | publishedVer=$(shell npm view -j $(shell json -f package.json name)@$(shell json -f package.json version) version 2>/dev/null) && \ |
||
| 50 | if [[ -n "$$publishedVer" ]]; then \ |
||
| 51 | echo "error: $$name@$$ver is already published to npm"; \ |
||
| 52 | exit 1; \ |
||
| 53 | fi && \ |
||
| 54 | echo "** Are you sure you want to tag and publish $$name@$$ver to npm?" && \ |
||
| 55 | echo "** Enter to continue, Ctrl+C to abort." && \ |
||
| 56 | read |
||
| 57 | ver=$(shell cat package.json | json version) && \ |
||
| 58 | date=$(shell date -u "+%Y-%m-%d") && \ |
||
| 59 | git tag -a "$$ver" -m "version $$ver ($$date)" && \ |
||
| 60 | git push --tags origin && \ |
||
| 61 | npm publish |
||
| 62 | |||
| 63 | .PHONY: docs |
||
| 64 | docs: toc |
||
| 65 | @[[ `which ronn` ]] || (echo "No 'ronn' on your PATH. Install with 'gem install ronn'" && exit 2) |
||
| 66 | mkdir -p man/man1 |
||
| 67 | ronn --style=toc --manual="bunyan manual" --date=$(shell git log -1 --pretty=format:%cd --date=short) --roff --html docs/bunyan.1.ronn |
||
| 68 | python -c 'import sys; h = open("docs/bunyan.1.html").read(); h = h.replace(".mp dt.flush {float:left;width:8ex}", ""); open("docs/bunyan.1.html", "w").write(h)'
|
||
| 69 | python -c 'import sys; h = open("docs/bunyan.1.html").read(); h = h.replace("</body>", """<a href="https://github.com/trentm/node-bunyan"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a></body>"""); open("docs/bunyan.1.html", "w").write(h)'
|
||
| 70 | @echo "# test with 'man ./docs/bunyan.1' and 'open ./docs/bunyan.1.html'" |
||
| 71 | |||
| 72 | # Re-generate the README.md table of contents. |
||
| 73 | toc: |
||
| 74 | ./node_modules/.bin/markdown-toc -i README.md |
||
| 75 | |||
| 76 | |||
| 77 | .PHONY: publish |
||
| 78 | publish: |
||
| 79 | mkdir -p tmp |
||
| 80 | [[ -d tmp/bunyan-gh-pages ]] || git clone git@github.com:trentm/node-bunyan.git tmp/bunyan-gh-pages |
||
| 81 | cd tmp/bunyan-gh-pages && git checkout gh-pages && git pull --rebase origin gh-pages |
||
| 82 | cp docs/index.html tmp/bunyan-gh-pages/index.html |
||
| 83 | cp docs/bunyan.1.html tmp/bunyan-gh-pages/bunyan.1.html |
||
| 84 | (cd tmp/bunyan-gh-pages \ |
||
| 85 | && git commit -a -m "publish latest docs" \ |
||
| 86 | && git push origin gh-pages || true) |
||
| 87 | |||
| 88 | .PHONY: distclean |
||
| 89 | distclean: |
||
| 90 | rm -rf node_modules |
||
| 91 | |||
| 92 | |||
| 93 | #---- test |
||
| 94 | |||
| 95 | .PHONY: test |
||
| 96 | test: $(NODEUNIT) |
||
| 97 | test -z "$(DTRACE_UP_IN_HERE)" || test -n "$(SKIP_DTRACE)" || \ |
||
| 98 | (node -e 'require("dtrace-provider").createDTraceProvider("isthisthingon")' && \
|
||
| 99 | echo "\nNote: Use 'SKIP_DTRACE=1 make test' to skip parts of the test suite that require root." && \ |
||
| 100 | $(SUDO) $(NODEUNIT) test/dtrace.test.js) |
||
| 101 | $(NODEUNIT) $(NON_DTRACE_TEST_FILES) |
||
| 102 | |||
| 103 | # Test will all node supported versions (presumes install locations I use on |
||
| 104 | # my machine -- "~/opt/node-VER"): |
||
| 105 | # Note: 'test4' is last so (if all is well) I end up with a binary |
||
| 106 | # dtrace-provider build for my current default node version. |
||
| 107 | .PHONY: testall |
||
| 108 | testall: test7 test6 test012 test010 test4 |
||
| 109 | |||
| 110 | .PHONY: test7 |
||
| 111 | test7: |
||
| 112 | @echo "# Test node 7.x (with node `$(NODEOPT)/node-7/bin/node --version`)" |
||
| 113 | @$(NODEOPT)/node-7/bin/node --version | grep '^v7\.' |
||
| 114 | PATH="$(NODEOPT)/node-7/bin:$(PATH)" make distclean all test |
||
| 115 | .PHONY: test6 |
||
| 116 | test6: |
||
| 117 | @echo "# Test node 6.x (with node `$(NODEOPT)/node-6/bin/node --version`)" |
||
| 118 | @$(NODEOPT)/node-6/bin/node --version | grep '^v6\.' |
||
| 119 | PATH="$(NODEOPT)/node-6/bin:$(PATH)" make distclean all test |
||
| 120 | .PHONY: test4 |
||
| 121 | test4: |
||
| 122 | @echo "# Test node 4.x (with node `$(NODEOPT)/node-4/bin/node --version`)" |
||
| 123 | @$(NODEOPT)/node-4/bin/node --version | grep '^v4\.' |
||
| 124 | PATH="$(NODEOPT)/node-4/bin:$(PATH)" make distclean all test |
||
| 125 | .PHONY: test012 |
||
| 126 | test012: |
||
| 127 | @echo "# Test node 0.12.x (with node `$(NODEOPT)/node-0.12/bin/node --version`)" |
||
| 128 | @$(NODEOPT)/node-0.12/bin/node --version | grep '^v0\.12\.' |
||
| 129 | PATH="$(NODEOPT)/node-0.12/bin:$(PATH)" make distclean all test |
||
| 130 | .PHONY: test010 |
||
| 131 | test010: |
||
| 132 | @echo "# Test node 0.10.x (with node `$(NODEOPT)/node-0.10/bin/node --version`)" |
||
| 133 | @$(NODEOPT)/node-0.10/bin/node --version | grep '^v0\.10\.' |
||
| 134 | PATH="$(NODEOPT)/node-0.10/bin:$(PATH)" make distclean all test |
||
| 135 | |||
| 136 | |||
| 137 | #---- check |
||
| 138 | |||
| 139 | .PHONY: check-jsstyle |
||
| 140 | check-jsstyle: $(JSSTYLE_FILES) |
||
| 141 | ./tools/jsstyle -o indent=4,doxygen,unparenthesized-return=0,blank-after-start-comment=0,leading-right-paren-ok=1 $(JSSTYLE_FILES) |
||
| 142 | |||
| 143 | .PHONY: check |
||
| 144 | check: check-jsstyle versioncheck |
||
| 145 | @echo "Check ok." |
||
| 146 | |||
| 147 | .PHONY: prepush |
||
| 148 | prepush: check testall |
||
| 149 | @echo "Okay to push." |