1#!/bin/bash
2
3set -e
4
5echo "Clearing cached plugins..."
6cargo clean --manifest-path plugins/Cargo.toml
7
8echo "Building Wasm plugins..."
9cargo build --release --target wasm32-unknown-unknown --manifest-path plugins/Cargo.toml
10
11echo
12echo "Extracting binaries..."
13rm -rf plugins/bin
14mkdir plugins/bin
15
16for f in plugins/target/wasm32-unknown-unknown/release/*.wasm
17do
18 name=$(basename $f)
19 cp $f plugins/bin/$name
20 echo "- Extracted plugin $name"
21done
22
23echo
24echo "Creating .wat versions (for human inspection)..."
25
26for f in plugins/bin/*.wasm
27do
28 name=$(basename $f)
29 base=$(echo $name | sed "s/\..*//")
30 wasm2wat $f --output plugins/bin/$base.wat
31 echo "- Converted $base.wasm -> $base.wat"
32done
33
34echo
35echo "Optimizing plugins using wasm-opt..."
36
37for f in plugins/bin/*.wasm
38do
39 name=$(basename $f)
40 wasm-opt -Oz $f --output $f
41 echo "- Optimized $name"
42done
43
44echo
45echo "Done!"