UNPKG

4.12 kBPlain TextView Raw
1# vim: set softtabstop=2 shiftwidth=2:
2SHELL = bash
3
4PUBLISHTAG = $(shell node scripts/publish-tag.js)
5BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
6
7markdowns = $(shell find docs -name '*.md' | grep -v 'index') README.md
8
9cli_mandocs = $(shell find docs/content/cli-commands -name '*.md' \
10 |sed 's|.md|.1|g' \
11 |sed 's|docs/content/cli-commands/|man/man1/|g' ) \
12 man/man1/npm-README.1 \
13 man/man1/npx.1
14
15files_mandocs = $(shell find docs/content/configuring-npm -name '*.md' \
16 |sed 's|.md|.5|g' \
17 |sed 's|docs/content/configuring-npm/|man/man5/|g' ) \
18
19misc_mandocs = $(shell find docs/content/using-npm -name '*.md' \
20 |sed 's|.md|.7|g' \
21 |sed 's|docs/content/using-npm/|man/man7/|g' ) \
22
23mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs)
24
25all: docs
26
27latest:
28 @echo "Installing latest published npm"
29 @echo "Use 'make install' or 'make link' to install the code"
30 @echo "in this folder that you're looking at right now."
31 node bin/npm-cli.js install -g -f npm ${NPMOPTS}
32
33install: all
34 node bin/npm-cli.js install -g -f ${NPMOPTS} $(shell node bin/npm-cli.js pack | tail -1)
35
36# backwards compat
37dev: install
38
39link: uninstall
40 node bin/npm-cli.js link -f
41
42clean: markedclean marked-manclean docs-clean
43 rm -rf npmrc
44 node bin/npm-cli.js cache clean --force
45
46uninstall:
47 node bin/npm-cli.js rm npm -g -f
48
49mandocs: $(mandocs)
50
51htmldocs:
52 cd docs && node ../bin/npm-cli.js install && \
53 node ../bin/npm-cli.js run build:static echo>&2 && \
54 rm -rf node_modules .cache public/*js public/*json public/404* public/page-data public/manifest*
55
56docs: mandocs htmldocs
57
58markedclean:
59 rm -rf node_modules/marked node_modules/.bin/marked .building_marked
60
61marked-manclean:
62 rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man
63
64docsclean: docs-clean
65docs-clean:
66 rm -rf \
67 .building_marked \
68 .building_marked-man \
69 man \
70 docs/node_modules \
71 docs/public \
72 docs/.cache
73
74## build-time tools for the documentation
75build-doc-tools := node_modules/.bin/marked \
76 node_modules/.bin/marked-man
77
78# use `npm install marked-man` for this to work.
79man/man1/npm-README.1: README.md scripts/docs-build.js package.json $(build-doc-tools)
80 @[ -d man/man1 ] || mkdir -p man/man1
81 node scripts/docs-build.js $< $@
82
83man/man1/%.1: docs/content/cli-commands/%.md scripts/docs-build.js package.json $(build-doc-tools)
84 @[ -d man/man1 ] || mkdir -p man/man1
85 node scripts/docs-build.js $< $@
86
87man/man1/npx.1: node_modules/libnpx/libnpx.1
88 cat $< | sed s/libnpx/npx/ > $@
89
90man/man5/npm-json.5: man/man5/package.json.5
91 cp $< $@
92
93man/man5/npm-global.5: man/man5/folders.5
94 cp $< $@
95
96man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js package.json $(build-doc-tools)
97 @[ -d man/man5 ] || mkdir -p man/man5
98 node scripts/docs-build.js $< $@
99
100man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js package.json $(build-doc-tools)
101 @[ -d man/man7 ] || mkdir -p man/man7
102 node scripts/docs-build.js $< $@
103
104marked: node_modules/.bin/marked
105
106node_modules/.bin/marked:
107 node bin/npm-cli.js install marked --no-global --no-timing --no-save
108
109marked-man: node_modules/.bin/marked-man
110
111node_modules/.bin/marked-man:
112 node bin/npm-cli.js install marked-man --no-global --no-timing --no-save
113
114test: docs
115 node bin/npm-cli.js test
116
117tag:
118 node bin/npm-cli.js tag npm@$(PUBLISHTAG) latest
119
120ls-ok:
121 node . ls >/dev/null
122
123gitclean:
124 git clean -fd
125
126publish: gitclean ls-ok link docs-clean docs
127 @git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true
128 git push origin $(BRANCH) &&\
129 git push origin --tags &&\
130 node bin/npm-cli.js publish --tag=$(PUBLISHTAG)
131
132release: gitclean ls-ok markedclean marked-manclean docs-clean docs
133 node bin/npm-cli.js prune --production --no-save
134 @bash scripts/release.sh
135
136sandwich:
137 @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13)
138
139.PHONY: all latest install dev link docs clean uninstall test man docs-clean docclean release ls-ok realclean