-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
121 lines (95 loc) · 3.53 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
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
ifndef CI_BUILD
include .env
endif
.PHONY: default $(MAKECMDGOALS)
TEST__USER_ID := 728871946456137770
CDN_PATH := /silverpelt/cdn/antiraid
PWD := $(shell pwd)
default:
$(error No target provided. Please see README.md for more information)
infra:
# Core infra
cd infra/nirn-proxy && make
cd infra/Sandwich-Daemon && make
format:
# For every project in core/rust.*
for d in core/rust.* services/rust.*; do \
cd $$d && cargo fmt && cd ../..; \
done
# For every project in services/go.*
for d in core/go.* services/go.*; do \
cd $$d && go fmt && cd ../..; \
done
# Builds AntiRaid services
build:
mkdir -p out
make build_go
make build_rust
make copyassets
build_go:
for d in services/api services/jobserver; do \
echo $$d && cd ${PWD}/$$d && go build -v -o ${PWD}/out && cd ${PWD}; \
done
build_rust:
mkdir -p ${PWD}/out
cd services/bot && cargo build --release && mv ${PWD}/target/release/bot ${PWD}/out/bot && cd ${PWD}
cd services/template-worker && cargo build --release && mv ${PWD}/target/release/template-worker ${PWD}/out/template-worker && cd ${PWD}
build_rust_dbg:
mkdir -p ${PWD}/out/debug
cd services/bot && cargo build && mv ${PWD}/target/debug/bot ${PWD}/out/debug/bot && cd ${PWD}
cd services/template-worker && cargo build && mv ${PWD}/target/debug/template-worker ${PWD}/out/debug/template-worker && cd ${PWD}
clean:
rm -rf out target
cleanassets:
rm -rf services/website/src/lib/generated services/badgerfang/src/types/splashtail
deepclean:
make clean
make cleanassets
copyassets:
# For every project in core/* and services/*, copy .generated/* to data/generated/{project_name} and to the website (services/website/lib/generated)
rm -rf data/generated/build_assets
mkdir -p data/generated/build_assets
for d in core/* services/*; do \
[ -d $$d/.generated ] || continue; \
mkdir -p data/generated/build_assets/$$(basename $$d); \
cp -rf $$d/.generated/* data/generated/build_assets/$$(basename $$d); \
done
rm -rf services/website/src/lib/generated/build_assets
mkdir -p services/website/src/lib/generated/build_assets
for d in core/* services/*; do \
[ -d $$d/.generated ] || continue; \
mkdir -p services/website/src/lib/generated/build_assets/$$(basename $$d); \
cp -rf $$d/.generated/* services/website/src/lib/generated/build_assets/$$(basename $$d); \
done
# Build rust assets too
cd data/generated/build_assets && ../../../out/bot genassets && cd ../../..
cd services/website/src/lib/generated/build_assets && ../../../../../../out/bot genassets && cd ../../../../../..
# Generate typings for website
~/go/bin/tygo generate
# Patch to change all "SelectMenu = any;" to "SelectMenu = undefined /*tygo workaround*/;" to work around tygo issue
sed -i 's:SelectMenu = any;:SelectMenu = undefined /*tygo workaround*/;:g' services/website/src/lib/generated/discordgo.ts
# Copy typings to badgerfang
rm -rf services/badgerfang/src/types/splashtail
cp -rf services/website/src/lib/generated services/badgerfang/src/types/splashtail
docs:
python3 docs/gen_khronos_docs.py ~/khronos docs/src/dev/templating/2-plugins.md
tests:
./out/bot test
lint_go:
for d in core/go.* services/go.*; do \
~/go/bin/golangci-lint run ./$$d/...; \
done
lintfull_go:
go work edit -json | jq -r '.Use[].DiskPath' | xargs -I{} ~/go/bin/golangci-lint run {}/...
update_go:
PWD=$(shell pwd)
for d in core/go.* services/go.*; do \
echo $$d; \
cd $$d && go get -u ./... && cd ${PWD}; \
done
gomodtidy:
PWD=$(shell pwd)
for d in core/go.* services/go.*; do \
echo $$d; \
cd $$d && go mod tidy && cd ${PWD}; \
done