50 lines
2.0 KiB
Bash
50 lines
2.0 KiB
Bash
#!/bin/sh -ve
|
|
|
|
# SPDX-FileCopyrightText: 2019-Present Christian Kußowski
|
|
# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
SED=$(command -v gsed || command -v sed)
|
|
|
|
# Compile Vodozemac for web
|
|
version=$(yq ".dependencies.flutter_vodozemac" < pubspec.yaml)
|
|
version=$(printf "%s" "$version" | tr -d '"^')
|
|
git clone https://github.com/famedly/dart-vodozemac.git -b ${version} .vodozemac
|
|
cd .vodozemac
|
|
cargo install flutter_rust_bridge_codegen
|
|
flutter_rust_bridge_codegen build-web --dart-root dart --rust-root $(readlink -f rust) --release
|
|
cd ..
|
|
rm -f ./assets/vodozemac/vodozemac_bindings_dart*
|
|
mkdir -p "./assets/vodozemac/$version/"
|
|
mv .vodozemac/dart/web/pkg/vodozemac_bindings_dart* "./assets/vodozemac/$version/"
|
|
rm -rf .vodozemac
|
|
grep -qF "assets/vodozemac/${version}/" pubspec.yaml || "$SED" -i "\|- assets/sounds/|a\\ - assets/vodozemac/${version}/" pubspec.yaml
|
|
"$SED" -i "s/vodozemacVersion = '.*';/vodozemacVersion = '${version}';/" lib/config/app_config.dart
|
|
|
|
flutter pub get
|
|
dart compile js ./web/native_executor.dart -o ./web/native_executor.js -m
|
|
|
|
# Download native_imaging for web:
|
|
version=$(yq ".dependencies.native_imaging" < pubspec.yaml)
|
|
version=$(printf "%s" "$version" | tr -d '"^')
|
|
curl -L "https://github.com/famedly/dart_native_imaging/releases/download/v${version}/native_imaging.zip" > native_imaging.zip
|
|
unzip native_imaging.zip
|
|
mv js/* web/
|
|
rmdir js
|
|
rm native_imaging.zip
|
|
|
|
# Enable e2ee for LiveKit:
|
|
git clone https://github.com/livekit/client-sdk-flutter.git
|
|
cd client-sdk-flutter
|
|
flutter pub get
|
|
|
|
# Patch so that LiveKit uses HKDF by default:
|
|
# Workaroudn for https://github.com/livekit/client-sdk-flutter/issues/974
|
|
"$SED" -i "s/{'name': 'PBKDF2'.toJS}/{'name': 'HKDF'.toJS}/g" web/e2ee.keyhandler.dart
|
|
"$SED" -i "s/getAlgoOptions('PBKDF2', salt)/getAlgoOptions('HKDF', salt)/g" web/e2ee.keyhandler.dart
|
|
"$SED" -i "s/{'name': 'PBKDF2'}/{'name': 'HKDF'}/g" web/e2ee.utils.dart
|
|
|
|
dart compile js web/e2ee.worker.dart -o ../web/e2ee.worker.dart.js -m
|
|
cd ..
|
|
rm -rf client-sdk-flutter |