nectar/build-app.sh

46 lines
1.6 KiB
Bash
Raw Normal View History

2023-10-02 23:02:53 +03:00
#!/bin/bash
2023-10-03 09:48:12 +03:00
debug_flag="--release"
2023-10-02 23:02:53 +03:00
if [ $# -ne 1 ] && [ $# -ne 2 ]; then
2023-10-03 09:48:12 +03:00
echo "Usage: $0 <name> [--debug]"
2023-10-02 23:02:53 +03:00
exit 1
fi
name="$1"
2023-10-03 09:48:12 +03:00
if [[ "$2" == "--debug" ]]; then
debug_flag=""
2023-10-02 23:02:53 +03:00
fi
pwd=$(pwd)
2023-10-03 09:48:12 +03:00
# Check if the --debug flag is present
if [[ "$@" == *"--debug"* ]]; then
debug_flag="--release"
2023-10-02 23:02:53 +03:00
fi
rm -rf "$pwd/modules/$name/wit" || { echo "Command failed"; exit 1; }
cp -r wit "$pwd/modules/$name" || { echo "Command failed"; exit 1; }
mkdir -p "$pwd/modules/$name/target/bindings/$name" || { echo "Command failed"; exit 1; }
cp target.wasm "$pwd/modules/$name/target/bindings/$name/" || { echo "Command failed"; exit 1; }
cp world "$pwd/modules/$name/target/bindings/$name/" || { echo "Command failed"; exit 1; }
mkdir -p "$pwd/modules/$name/target/wasm32-unknown-unknown/release" || { echo "Command failed"; exit 1; }
# Build the module using Cargo
cargo build \
2023-10-03 09:48:12 +03:00
$debug_flag \
2023-10-02 23:02:53 +03:00
--no-default-features \
--manifest-path="$pwd/modules/$name/Cargo.toml"\
--target "wasm32-wasi" || {
echo "Command failed"; exit 1;
}
# Adapt the module using wasm-tools
wasm-tools component new "$pwd/modules/$name/target/wasm32-wasi/release/$name.wasm" -o "$pwd/modules/$name/target/wasm32-wasi/release/${name}_adapted.wasm" --adapt "$pwd/wasi_snapshot_preview1.wasm" || { echo "Command failed"; exit 1; }
# Embed "wit" into the component and place it in the expected location
wasm-tools component embed wit --world uq-process "$pwd/modules/$name/target/wasm32-wasi/release/${name}_adapted.wasm" -o "$pwd/modules/$name/target/wasm32-unknown-unknown/release/$name.wasm" || { echo "Command failed"; exit 1; }