-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
justfile
257 lines (196 loc) · 6.48 KB
/
justfile
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
set windows-shell := ["C:/tools/cygwin/bin/sh.exe","-c"]
set positional-arguments
crates := 'forky forky_cli forky_core forky_play forky_bevy'
# features := '--features forky_play/shader_debug_internal'
features := ''
# forky_esp
backtrace := '0'
# backtrace := '1'
# backtrace := 'full'
default:
just --list --unsorted
### common ###
@all command:
for file in {{crates}}; do \
just {{command}} $file; \
done
run crate example *args:
RUST_BACKTRACE={{backtrace}} cargo run -p {{crate}} --example {{example}} {{args}}
leptosfmt:
just watch just leptosfmt-inner
leptosfmt-inner *args:
leptosfmt ./crates/forky_web/src/**/*.rs {{args}}
fix *args:
for file in {{crates}}; do \
cargo fix --allow-dirty --lib -p $file {{args}}; \
done
fmt *args:
for file in {{crates}}; do \
cargo fmt -p $file {{args}}; \
done
cli *args:
cargo run -p forky_cli -- {{args}}
install-cli *args:
cargo install --path ./crates/forky_cli {{args}}
run-w *args:
just watch just run {{args}}
build crate example *args:
RUST_BACKTRACE={{backtrace}} cargo build -p {{crate}} --example {{example}} {{args}}
check crate *args:
RUST_BACKTRACE={{backtrace}} cargo check -p {{crate}} {{args}}
clean crate *args:
RUST_BACKTRACE={{backtrace}} cargo clean -p {{crate}} {{args}}
clean-repo:
cargo clean
rm -rf ./target
rm -rf ./Cargo.lock
just all clean
#just test-all
# rm -rf C:/temp/.embuild
# rm -rf C:/temp/idf
# rm -rf ./.embuild
# rm -rf ./target-esp
# required: cargo binstall cargo-expand
expand crate example *args:
just watch 'cargo expand -p {{crate}} --example {{example}} {{args}}'
expand-wasm crate example *args:
just expand {{crate}} {{example}} --target wasm32-unknown-unknown {{args}}
@log argument:
echo {{argument}}
patch:
cargo set-version --bump patch
publish crate *args:
cargo publish -p {{crate}} --allow-dirty --no-verify {{args}}
sleep 2
publish-all *args:
just publish forky_core {{args}} | true
just publish forky_fs {{args}} | true
just publish forky_web_macros {{args}} | true
just publish forky_web {{args}} | true
just publish forky_cli {{args}} | true
just publish forky_bevy {{args}} | true
just publish forky {{args}} | true
#just publish forky_play | true
# just publish forky_ai | true
start crate:
./target/debug/{{crate}}.exe
ci:
just test-all
just test-all-wasm
# cargo run -p forky_play --example test_forky_play --features sweet/bevy -- --parallel
# cargo run -p forky_cli_test --example test_forky_cli_test -- --parallel
test-all *args:
cargo run -p forky_bevy_test --example test_forky_bevy_test -- --parallel
cargo run -p forky_fs_test --example test_forky_fs_test -- --parallel
cargo run -p forky_core_test --example test_forky_core_test -- --parallel
test crate *args:
RUST_BACKTRACE={{backtrace}} cargo run -p {{crate}} --example test_{{crate}} {{features}} -- {{args}}
test-w crate *args:
just watch just test {{crate}} -w {{args}}
test-all-wasm *args:
just test-wasm forky_web_test {{args}}
test-wasm crate *args:
sweet -p {{crate}} --example test_{{crate}}_wasm {{args}}
doc-w crate *args:
echo "Navigate to the crate, ie http://127.0.0.1:3000/sweet"
forky serve ./target/doc & just watch just doc {{crate}} {{args}}
doc crate *args:
cargo doc --all-features -p {{crate}} {{args}}
# RUSTDOCFLAGS='--show-coverage -Z unstable-options' cargo doc -p {{crate}} {{args}}
book:
cd docs && mdbook serve
watch *command:
forky watch \
-w '**/*.rs' \
-i '{.git,target,html}/**' \
-i '**/mod.rs' \
-i '**/*_g.rs' \
-- {{command}}
### PLAY ###
vis-w crate example:
just vis-serve & just watch just vis {{crate}} {{example}}
vis crate example:
just run {{crate}} {{example}}
just dot-to-svg target/graph/render_graph.dot
vis-serve:
cd ./target/graph && forky serve
# requires https://graphviz.org/download/
dot-to-svg target:
dot -Tsvg -O {{target}}
bevy-deps:
cargo search bevy
cargo search bevy-inspector-egui
cargo search bevy_mod_debugdump
cargo search bevy_rapier3d
### WASM ###
# run-wasm crate example:
# cargo run -p {{crate}} --example {{example}} --target wasm32-unknown-unknown
build-wasm crate example *args:
echo building
just copy-wasm-assets
cargo build -p {{crate}} --example {{example}} --target wasm32-unknown-unknown {{args}}
RUST_BACKTRACE={{backtrace}} wasm-bindgen \
--out-dir ./html/wasm \
--out-name bindgen \
--target web \
./target/wasm32-unknown-unknown/debug/examples/{{example}}.wasm
# --no-typescript \
watch-wasm *args:
just watch 'just build-wasm {{args}}'
# just watch 'just copy-wasm-assets'
serve-wasm *args:
cd ./html && live-server --host=0.0.0.0 --watch=wasm/bindgen_bg.wasm,index.html,style.css {{args}}
serve-https *args:
just serve-wasm --https=https.config.js {{args}}
copy-wasm-assets:
rm -rf ./html/assets
cp -r ./crates/forky_play/assets ./html/assets
ssl:
openssl genrsa -out target/client-key.pem 2048
openssl req -new -key target/client-key.pem -subj "/CN=foobar.com\/[email protected]/C=US/ST=Ohio/L=Columbus/O=Widgets Inc/OU=Some Unit" -out target/client.csr
openssl x509 -req -in target/client.csr -signkey target/client-key.pem -out target/client-cert.pem
style:
cargo run -p forky_cli style all
watch-css crate *args:
forky watch \
just build-css {{crate}} {{args}} \
-w '**/*.css' \
-i '{.git,target,html}/**' \
@build-css crate *args:
just lightning ./crates/{{crate}}/src/style/index.css ./html/style.css {{args}}
lightning in out *args:
npx lightningcss {{in}} --bundle -m -o {{out}} {{args}}
### ESP ###
port := 'COM3'
# port := 'COM4'
target-esp := '--target riscv32imc-unknown-none-elf -Zbuild-std=core'
@esp command *args:
just esp-{{command}} {{args}}
@esp-w command *args:
just watch 'just esp-{{command}} {{args}}'
esp-build *args:
cargo build \
-p forky_esp \
{{target-esp}} \
--bin {{args}}
esp-flash *args:
cargo espflash {{port}} \
--monitor --release \
--package forky_esp \
--speed 921600 \
{{target-esp}} \
--bin {{args}}
esp-save bin *args:
cargo espflash save-image \
--package forky_esp --release \
{{target-esp}} \
--bin {{bin}} \
ESP32-C3 out/esp.image {{args}}
esp-info:
cargo espflash board-info {{port}}
esp-monitor:
cargo espflash serial-monitor {{port}}
idf *args:
cd ./crates/forky_idf; just {{args}}
@idf-w *args:
just watch 'just idf {{args}}'