Skip to content

Commit ca86291

Browse files
Merge pull request #34 from CarterPerez-dev/feat/9.98%
Feat/9.98%
2 parents 1331faa + d52eb8f commit ca86291

File tree

408 files changed

+26222
-6705
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

408 files changed

+26222
-6705
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ backend/.env.testing
3434
.env.development
3535
.env.production
3636
.env.testing
37-
.env
37+
*.env
3838
node_modules/
3939
my-react-app/build/
4040
AuthKey_8VA5M37ZZZ.p8
@@ -45,3 +45,7 @@ backend/context/
4545
backend/certgames.egg-info
4646
conf/nginx/logs/
4747
NEEDTODO.md
48+
49+
λex/bin/
50+
λex/src/*.o
51+
λex/src/nimcache/

Justfile

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
set shell := ["bash", "-cu"]
2+
3+
compose_dev := "dev.yml"
4+
compose_prod := "prod.yml"
5+
6+
admin_dir := "frontend/admin-app"
7+
user_dir := "frontend/user-app"
8+
backend_dir := "backend"
9+
10+
default:
11+
@just --list
12+
13+
dev-build:
14+
@printf '\033[96m'
15+
docker compose -f {{compose_dev}} build
16+
17+
dev-up:
18+
@printf '\033[96m[dev environment initiating]\033[0m\n'
19+
docker compose -f {{compose_dev}} up -d && docker compose -f {{compose_dev}} logs -f
20+
21+
dev-stop:
22+
@printf '\033[93m[halting dev containers]\033[0m\n'
23+
docker compose -f {{compose_dev}} stop
24+
25+
dev-down:
26+
@printf '\033[91m[terminating dev environment]\033[0m\n'
27+
docker compose -f {{compose_dev}} down
28+
29+
dev-rebuild:
30+
@printf '\033[95m[full dev cycle initiated]\033[0m\n'
31+
docker compose -f {{compose_dev}} down
32+
docker compose -f {{compose_dev}} build
33+
docker compose -f {{compose_dev}} up -d
34+
docker compose -f {{compose_dev}} logs -f
35+
36+
prod-build:
37+
@printf '\033[96m[production artifacts compiling]\033[0m\n'
38+
docker compose -f {{compose_prod}} build
39+
40+
prod-up:
41+
@printf '\033[92m[production deployment initiated]\033[0m\n'
42+
docker compose -f {{compose_prod}} up -d && docker compose -f {{compose_prod}} logs -f
43+
44+
prod-stop:
45+
@printf '\033[93m[production containers paused]\033[0m\n'
46+
docker compose -f {{compose_prod}} stop
47+
48+
prod-down:
49+
@printf '\033[91m[production teardown executing]\033[0m\n'
50+
docker compose -f {{compose_prod}} down
51+
52+
prod-rebuild:
53+
@printf '\033[95m[production full rebuild cycle]\033[0m\n'
54+
docker compose -f {{compose_prod}} down
55+
docker compose -f {{compose_prod}} build
56+
docker compose -f {{compose_prod}} up -d
57+
docker compose -f {{compose_prod}} logs -f
58+
59+
eslint:
60+
@printf '\033[95m[eslint analysis]\033[0m\n'
61+
cd {{admin_dir}} && npm run lint:eslint
62+
cd {{user_dir}} && npm run lint:eslint
63+
64+
typelint:
65+
@printf '\033[95m[type verification]\033[0m\n'
66+
cd {{admin_dir}} && npm run lint:types
67+
cd {{user_dir}} && npm run lint:types
68+
69+
scss:
70+
@printf '\033[95m[scss correction]\033[0m\n'
71+
cd {{admin_dir}} && npm run lint:scss:fix
72+
cd {{user_dir}} && npm run lint:scss:fix
73+
74+
ruff:
75+
@printf '\033[95m[ruff analysis]\033[0m\n'
76+
ruff check {{backend_dir}}
77+
78+
ruff-fix:
79+
@printf '\033[93m[ruff correction]\033[0m\n'
80+
ruff check --fix {{backend_dir}}
81+
82+
pylint:
83+
@printf '\033[95m[pylint scan]\033[0m\n'
84+
pylint {{backend_dir}}
85+
86+
mypy:
87+
@printf '\033[95m[mypy verification]\033[0m\n'
88+
mypy {{backend_dir}}
89+
90+
bandit:
91+
@printf '\033[91m[bandit audit]\033[0m\n'
92+
bandit -r {{backend_dir}}
93+
94+
prettier:
95+
@printf '\033[96m[prettier formatting]\033[0m\n'
96+
cd {{admin_dir}} && npm run format
97+
cd {{user_dir}} && npm run format
98+
99+
yapf:
100+
@printf '\033[96m[yapf transformations]\033[0m\n'
101+
yapf -i -r -vv {{backend_dir}}/api/
102+
103+
nuke:
104+
@printf '\033[91m[nuclear option engaged]\033[0m\n'
105+
@λex/bin/nuke
106+
107+
vitals:
108+
@λex/bin/vitals
109+
110+
tail *containers:
111+
@λex/bin/tail {{containers}}
112+
113+
rotate target:
114+
@λex/bin/rotate {{target}}
115+
116+
tunnel *args:
117+
@λex/bin/tunnel {{args}}
118+
119+
scale service count:
120+
@λex/bin/scale {{service}} {{count}}
121+
122+
dns domain:
123+
@λex/bin/dns {{domain}}
124+
125+
load endpoint:
126+
@λex/bin/load {{endpoint}}
127+
128+
compile:
129+
@printf '\033[93m[compiling zig artifacts]\033[0m\n'
130+
cd λex/src && zig build-exe nuke.zig -O ReleaseFast -femit-bin=../bin/nuke
131+
cd λex/src && zig build-exe vitals.zig -O ReleaseFast -femit-bin=../bin/vitals
132+
cd λex/src && zig build-exe load.zig -O ReleaseFast -femit-bin=../bin/load
133+
@printf '\033[93m[compiling nim artifacts]\033[0m\n'
134+
cd λex/src && nim c -d:release --out:../bin/tail tail.nim
135+
cd λex/src && nim c -d:release --out:../bin/rotate rotate.nim
136+
cd λex/src && nim c -d:release --out:../bin/scale scale.nim
137+
@printf '\033[93m[preparing crystal artifacts]\033[0m\n'
138+
cd λex/src && crystal build --release dns.cr -o ../bin/dns
139+
@printf '\033[93m[preparing raku runtime]\033[0m\n'
140+
cp λex/src/tunnel.raku λex/bin/tunnel && chmod +x λex/bin/tunnel
141+
@printf '\033[92m[compilation sequence complete]\033[0m\n'
142+
143+
verify:
144+
@which zig > /dev/null || printf '\033[91mzig absent: snap install zig --classic\033[0m\n'
145+
@which nim > /dev/null || printf '\033[91mnim absent: curl https://nim-lang.org/choosenim/init.sh -sSf | sh\033[0m\n'
146+
@which raku > /dev/null || printf '\033[91mraku absent: apt install rakudo\033[0m\n'
147+
@which crystal > /dev/null || printf '\033[91mcrystal absent: snap install crystal --classic\033[0m\n'
148+
149+
clean:
150+
@rm -f λex/bin/*
151+
@rm -rf λex/src/*.o λex/src/nimcache
152+
@printf '\033[92m[artifacts purged]\033[0m\n'

0 commit comments

Comments
 (0)