Add native self-hosted instance connection to fluxer_desktop
Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
CRATE_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
require_pkg_config() {
|
||||
if ! command -v pkg-config >/dev/null 2>&1; then
|
||||
echo "error: pkg-config is required but was not found in PATH." >&2
|
||||
echo " Install via: brew install pkg-config (macOS)" >&2
|
||||
echo " apt-get install pkg-config (Debian/Ubuntu)" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_webrtc_pkgconfig() {
|
||||
if ! pkg-config --exists webrtc-audio-processing-2; then
|
||||
echo "error: pkg-config cannot locate webrtc-audio-processing-2." >&2
|
||||
echo " See fluxer_desktop/native/audio-apm/README.md for install steps." >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_absl_pkgconfig() {
|
||||
if ! pkg-config --exists absl_base; then
|
||||
echo "error: pkg-config cannot locate absl_base." >&2
|
||||
echo " Install via: brew install abseil (macOS)" >&2
|
||||
echo " apt-get install libabsl-dev (Debian/Ubuntu)" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
inject_absl_include_path() {
|
||||
local absl_includes
|
||||
absl_includes="$(pkg-config --cflags-only-I absl_base)"
|
||||
if [[ -z "${absl_includes}" ]]; then
|
||||
echo "error: pkg-config returned no include path for absl_base." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local prev_cxxflags="${CXXFLAGS-}"
|
||||
local prev_bindgen="${BINDGEN_EXTRA_CLANG_ARGS-}"
|
||||
|
||||
export CXXFLAGS="${absl_includes} ${prev_cxxflags}"
|
||||
export BINDGEN_EXTRA_CLANG_ARGS="${absl_includes} ${prev_bindgen}"
|
||||
}
|
||||
|
||||
main() {
|
||||
cd "${CRATE_DIR}"
|
||||
|
||||
local cargo_subcmd="build"
|
||||
if [[ $# -gt 0 && "$1" != -* && "$1" != "--" ]]; then
|
||||
cargo_subcmd="$1"
|
||||
shift
|
||||
fi
|
||||
|
||||
require_pkg_config
|
||||
assert_webrtc_pkgconfig
|
||||
assert_absl_pkgconfig
|
||||
inject_absl_include_path
|
||||
|
||||
exec cargo "${cargo_subcmd}" --features real-apm "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user