2017-06-16 13:05:37 +00:00
|
|
|
# Makefile for Anime Notifier
|
|
|
|
|
2019-08-27 08:45:18 +00:00
|
|
|
# Constants
|
2018-03-21 19:22:57 +00:00
|
|
|
GOTEST=@./utils/test/go-test-color.sh
|
2019-08-27 08:45:18 +00:00
|
|
|
PACK=$(shell command -v pack 2> /dev/null)
|
|
|
|
RUN=$(shell command -v run 2> /dev/null)
|
2018-02-19 05:13:33 +00:00
|
|
|
|
|
|
|
# Determine the name of the platform
|
2017-11-08 11:11:20 +00:00
|
|
|
OSNAME=
|
|
|
|
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
OSNAME = WINDOWS
|
|
|
|
else
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
|
|
|
OSNAME = LINUX
|
|
|
|
endif
|
|
|
|
ifeq ($(UNAME_S),Darwin)
|
|
|
|
OSNAME = OSX
|
|
|
|
endif
|
|
|
|
endif
|
2017-06-16 13:05:37 +00:00
|
|
|
|
2019-09-06 04:35:52 +00:00
|
|
|
# builds the server executable
|
2017-06-16 13:05:37 +00:00
|
|
|
server:
|
2019-09-05 23:35:35 +00:00
|
|
|
@go build -v
|
2019-09-06 04:35:52 +00:00
|
|
|
|
|
|
|
# installs development tools
|
2017-07-05 23:51:42 +00:00
|
|
|
tools:
|
2017-11-08 13:54:43 +00:00
|
|
|
ifeq ($(OSNAME),OSX)
|
|
|
|
brew install coreutils
|
|
|
|
endif
|
2019-09-06 04:35:52 +00:00
|
|
|
go install github.com/aerogo/pack/...
|
|
|
|
go install github.com/aerogo/run/...
|
|
|
|
|
|
|
|
# compiles assets for the server
|
2017-06-16 13:29:09 +00:00
|
|
|
assets:
|
2019-08-27 08:45:18 +00:00
|
|
|
@tsc
|
2017-06-16 13:29:09 +00:00
|
|
|
@pack
|
2019-09-06 04:35:52 +00:00
|
|
|
|
|
|
|
# cleans all binaries and generated files
|
2017-06-16 13:38:10 +00:00
|
|
|
clean:
|
2017-06-16 13:42:22 +00:00
|
|
|
find . -type f | xargs file | grep "ELF.*executable" | awk -F: '{print $1}' | xargs rm
|
2019-04-14 10:04:08 +00:00
|
|
|
find . -type f | grep /scripts/ | grep .js | xargs rm
|
2019-04-21 04:38:56 +00:00
|
|
|
rm -rf ./components
|
2019-09-06 04:35:52 +00:00
|
|
|
|
|
|
|
# forwards local ports 80 and 443 to 4000 and 4001
|
2017-06-16 13:21:01 +00:00
|
|
|
ports:
|
2017-11-08 11:11:20 +00:00
|
|
|
ifeq ($(OSNAME),LINUX)
|
2019-08-27 08:45:18 +00:00
|
|
|
@sudo iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 4000
|
|
|
|
@sudo iptables -t nat -A OUTPUT -o lo -p tcp --dport 443 -j REDIRECT --to-port 4001
|
|
|
|
@sudo ip6tables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 4000
|
|
|
|
@sudo ip6tables -t nat -A OUTPUT -o lo -p tcp --dport 443 -j REDIRECT --to-port 4001
|
2017-11-08 11:11:20 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(OSNAME),OSX)
|
|
|
|
@echo "rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 4001" | sudo pfctl -ef -
|
|
|
|
endif
|
2019-09-06 04:35:52 +00:00
|
|
|
|
|
|
|
# installs systemd service files for all required services
|
|
|
|
services:
|
|
|
|
@./services/build.sh
|
|
|
|
|
|
|
|
# builds all background jobs
|
|
|
|
jobs:
|
|
|
|
@./jobs/build.sh
|
|
|
|
|
|
|
|
# builds all bots
|
|
|
|
bots:
|
|
|
|
@./bots/build.sh
|
|
|
|
|
|
|
|
# builds all patches
|
|
|
|
patches:
|
|
|
|
@./patches/build.sh
|
|
|
|
|
|
|
|
test:
|
|
|
|
$(GOTEST) github.com/animenotifier/notify.moe -v -cover
|
|
|
|
|
|
|
|
bench:
|
|
|
|
$(GOTEST) -run=^$ -bench .
|
|
|
|
|
2018-04-07 12:17:33 +00:00
|
|
|
all: tools assets server bots jobs patches
|
2017-06-16 13:05:37 +00:00
|
|
|
|
2019-09-06 04:35:52 +00:00
|
|
|
.PHONY: tools assets server bots jobs patches services ports clean
|