-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathMakefile
84 lines (59 loc) · 2.34 KB
/
Makefile
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
REALM := example.com
PHP := php
SIMPLESAMLPHP_VERSION := 2.2.1
SIMPLESAMLPHP_FLAVOUR := slim
camera-ready-dev: camera-ready dev
.PHONY: camera-ready-dev
camera-ready: syntax codestyle phpunit psalm phan
.PHONY: camera-ready
dev: check-php etc/letswifi.conf.php vendor
@test -f var/letswifi-dev.sqlite || make var/letswifi-dev.sqlite
$(PHP) -S [::1]:1080 -t www/
.PHONY: dev
clean:
rm -rf composer.phar etc/letswifi.conf.php phan.phar php-cs-fixer-v2.phar php-cs-fixer-v3.phar psalm.phar phpunit-7.phar simplesamlphp* vendor www/simplesaml
.PHONY: clean
test: syntax phpunit
.PHONY: test
# Code dependencies
composer.phar:
stat composer.phar >/dev/null 2>&1 || curl -sSLO https://getcomposer.org/composer.phar || wget https://getcomposer.org/composer.phar
vendor: composer.json check-php composer.phar
# Some dev dependencies have very strict PHP requirements
# Allowing running --no-dev to work around this
$(PHP) composer.phar install || $(PHP) composer.phar install --no-dev
composer.lock: composer.json check-php composer.phar
$(PHP) composer.phar update
etc/letswifi.conf.php:
cp etc/letswifi.conf.dist.php etc/letswifi.conf.php
var:
mkdir -p var
# Getting it up and running quickly
var/letswifi-dev.sqlite: var
rm -f var/letswifi-dev.sqlite
sqlite3 var/letswifi-dev.sqlite <sql/letswifi.sqlite.sql
$(PHP) bin/add-realm.php $(REALM) 1 || { rm var/letswifi-dev.sqlite && false; }
simplesamlphp:
-cp -n etc/letswifi.conf.simplesaml.php etc/letswifi.conf.php
curl -sSL https://github.com/simplesamlphp/simplesamlphp/releases/download/v$(SIMPLESAMLPHP_VERSION)/simplesamlphp-$(SIMPLESAMLPHP_VERSION)-$(SIMPLESAMLPHP_FLAVOUR).tar.gz | tar xzf -
ln -sf simplesamlphp-$(SIMPLESAMLPHP_VERSION)/ simplesamlphp || true
ln -sf ../simplesamlphp/public/ www/simplesaml || true
# Code formatters, static code sniffers etc.
check-php:
@$(PHP) -r 'exit(json_decode("true") === true ? 0 : 1);'
.PHONY: check-php
psalm: vendor
$(PHP) vendor/bin/psalm --no-cache
.PHONY: psalm
phan: vendor
$(PHP) vendor/bin/phan --allow-polyfill-parser --no-progress-bar
.PHONY: phan
codestyle: vendor
$(PHP) vendor/bin/php-cs-fixer fix
.PHONY: codestyle
phpunit: vendor
$(PHP) vendor/bin/phpunit
.PHONY: phpunit
syntax: check-php
find . ! -path './vendor/*' ! -path './simplesaml*' ! -path './lib/*' -type f -name \*.php -print0 | xargs -0 -n1 -P50 $(PHP) -l
.PHONY: syntax