-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
46 lines (35 loc) · 1.02 KB
/
Makefile
File metadata and controls
46 lines (35 loc) · 1.02 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
MAKEFLAGS = s
project := $(shell node -p "require('./package').name")
$(info $(project))
ifneq "$(findstring $(NODE_ENV),staging production)" ""
SITE = $(HOME)/public_nodejs/$(project)/$(NODE_ENV)
else
SITE = $(CURDIR)
NODE_ENV = development
endif
$(info NODE_ENV $(NODE_ENV))
$(info SITE $(SITE))
PUBLIC_FILES="Makefile bin *.json"
.PHONY: copy
copy:
ifneq "$(CURDIR)" "$(SITE)"
mkdir -p $(SITE)
rsync -arcv --exclude="node_modules" --exclude="service" --exclude="config.json" --delete "${PUBLIC_FILES}" ${SITE}/
endif
.PHONY: node_modules
node_modules:
cd $(SITE); \
npm prune && npm install --build-from-source;
.PHONY: install
install: copy node_modules
.PHONY: restart
restart:
systemctl --user restart $(project)-$(NODE_ENV).service
.PHONY: service
service:
mkdir -p $(SITE)/service
sed -e 's/$$NODE_ENV/$(NODE_ENV)/' -e 's|$$SITE|$(SITE)|' \
service/template.service > $(SITE)/service/$(project)-$(NODE_ENV).service
.PHONY: enable
enable: service
systemctl --user enable $(SITE)/service/$(project)-$(NODE_ENV).service