summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 32651c617bca4a314713de19440b420c8ad04e61 (plain) (blame)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -*- coding: utf-8 -*-
#
#   SPDX-License-Identifier: ISC
#
#   Copyright (C) 2019 rsiddharth <s@ricketyspace.net>
#
#   This file is part of nfsw.
#

VENV_DIR=/usr/local/virtualenv/.nfsw
VENV_CMD=virtualenv-3
JSHINT=~/.npm-packages/bin/jshint
PRD_HOST=cygnus
PRD_WHEEL=nfsw-0.1.0.dev3-py3-none-any.whl

HTTPD_CONF=etc/httpd.conf
ACME_CONF=etc/acme-client.conf
UWSGI_INI=etc/uwsgi/nfsw.ini
RC_D=etc/rc.d/nfsw

dunno:
	@echo "Give me somepin to make"

dev:
	pip install -r requirements.txt
.PHONY: dev


va:
	@echo ${VENV_DIR}/bin/activate
.PHONY: va


venv:
	rm -rf *.egg-info
	${SHELL} -c 'if [[ -d $(VENV_DIR) ]] then \
		rm -rf $(VENV_DIR); fi'
	${VENV_CMD} --clear --python=python3 $(VENV_DIR)
.PHONY: venv


jsh:
	${JSHINT} nfsw/static/io.js
	${JSHINT} nfsw/static/epilogue.js
.PHONY: jsh


build:
	python setup.py bdist_wheel
.PHONY: build

prd-init:
	ssh root@${PRD_HOST} \\"echo 'https://cdn.openbsd.org/pub/OpenBSD' \
		> /etc/installurl \
	&& pkg_add -v git redis py3-virtualenv cowsay rsync \
	&& git config --global --add user.name rsiddharth \
	&& git config --global --add user.email s@ricketyspace.net \
	&& git -C /etc init \
	&& git -C /etc add . \
	&& git -C /etc commit -m 'Initial commit' \
.PHONY: prd-init


prd-httpd:
	scp ${HTTPD_CONF} root@${PRD_HOST}:/${HTTPD_CONF}

	ssh root@${PRD_HOST} \\"rcctl enable httpd \
		&& rcctl restart httpd \\"
.PHONY: prd-httpd


prd-acme:
	scp ${ACME_CONF} root@${PRD_HOST}:/${ACME_CONF}
.PHONY: prd-acme


prd-user:
	ssh root@${PRD_HOST} \\"useradd -v -c 'NFSW daemon' \
		-e 0 -L daemon -s /sbin/nologin \
		-d /var/empty _nfsw\\"
.PHONY: prd-user


prd-venv:
	ssh root@${PRD_HOST} \\"mkdir -p /usr/local/virtualenv/ &&  \
		${VENV_CMD} --clear --python=python3 \
		${VENV_DIR}-prd \
		&& chown -R _nfsw:wheel ${VENV_DIR}-prd \\"
.PHONY: prd-venv


prd-install:
	ssh root@${PRD_HOST} \\"mkdir -p /var/www/nfsw/wheel/\\"
	scp dist/${PRD_WHEEL} \
		root@${PRD_HOST}:/var/www/nfsw/wheel/
	ssh root@${PRD_HOST} \\". ${VENV_DIR}-prd/bin/activate \
		&& pip install /var/www/nfsw/wheel/${PRD_WHEEL} \
		&& chown -R _nfsw:wheel ${VENV_DIR}-prd \
		&& chown -R _nfsw:wheel /var/www/nfsw/ \\"
.PHONY: prd-install

prd-upgrade:
	ssh root@${PRD_HOST} \\"mkdir -p /var/www/nfsw/wheel/\\"
	scp dist/${PRD_WHEEL} \
		root@${PRD_HOST}:/var/www/nfsw/wheel/
	ssh root@${PRD_HOST} \\". ${VENV_DIR}-prd/bin/activate \
		&& pip install --upgrade /var/www/nfsw/wheel/${PRD_WHEEL} \
		&& chown -R _nfsw:wheel ${VENV_DIR}-prd \
		&& chown -R _nfsw:wheel /var/www/nfsw/ \\"
.PHONY: prd-upgrade


prd-initdb:
	ssh root@${PRD_HOST} \\". ${VENV_DIR}-prd/bin/activate \
		&& FLASK_APP=nfsw flask init-db \
		&& chown -R _nfsw:wheel ${VENV_DIR}-prd \\"
.PHONY: prd-initdb


prd-rcd:
	ssh root@${PRD_HOST} mkdir -p -m 755 /etc/uwsgi
	scp ${UWSGI_INI} root@${PRD_HOST}:/${UWSGI_INI}
	scp ${RC_D} root@${PRD_HOST}:/${RC_D}
	ssh root@${PRD_HOST} chmod 555 /${RC_D}
	ssh root@${PRD_HOST} chmod 444 /${UWSGI_INI}
	ssh root@${PRD_HOST} chown root:wheel /${RC_D}
.PHONY: prd-rcd


clean:
	rm -rf build/ dist/ nfsw.egg-info/
	find ./ -type d -name '__pycache__' -exec rm -rf {} +
.PHONY: clean