123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #!/bin/bash -e
- dbg() {
- printf "\x1b[92m[..] $@\x1b[39m\n"
- }
- error() {
- printf "\x1b[91m[..] $@\x1b[39m\n"
- }
- dbg "creating webassembly deploy artifact"
- # install wasm-bindgen if we don't have it
- which wasm-bindgen >/dev/null 2>&1 || ( error 'wasm-bindgen not found: run cargo install `wasm-bindgen-cli`' ; exit 1 )
- if [ -e ./stories.tar.gz ]; then
- dbg "deleting ./stories.tar.gz"
- rm ./stories.tar.gz
- fi
- dbg "creating release build for wasm32"
- cargo build --release --target wasm32-unknown-unknown
- dbg "running wasm-bindgen"
- wasm-bindgen --no-typescript --target web \
- --out-dir ./out/ \
- --out-name "stories" \
- ./target/wasm32-unknown-unknown/release/stories.wasm
- dbg "assembling final artifact"
- TMP=$(mktemp -d)
- trap "rm -rf $TMP" EXIT
- DIR=$TMP/stories
- mkdir -p $DIR
- cp ./out/stories.js $DIR
- cp ./out/stories_bg.wasm $DIR
- cat >$DIR/index.html <<EOF
- <!doctype html>
- <html lang="en">
- <body style="margin: 0px;">
- <script type="module">
- import init from './stories.js'
- init().catch((error) => {
- if (!error.message.startsWith("Using exceptions for control flow, don't mind me. This isn't actually an error!")) {
- throw error;
- }
- });
- </script>
- </body>
- </html>
- EOF
- dbg "copying assets"
- mkdir -p $DIR/assets
- cp -r ./assets/* $DIR/assets/.
- dbg "removing asset sources"
- rm -f $DIR/assets/*.blend
- dbg "creating tarball"
- (
- cd $TMP
- tar -cf stories.tar ./stories
- gzip stories.tar
- )
- dbg "cleaning up..."
- cp $TMP/stories.tar.gz ./stories.tar.gz
|