59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This works on Linux and MacOS to launch the Rust dev server
|
|
|
|
set -euxo pipefail
|
|
|
|
echo "Running Artcraft Rust in Dev Mode..."
|
|
echo ""
|
|
|
|
echo "You'll need to launch the frontend dev server as a second script!"
|
|
echo ""
|
|
|
|
root_dir=$(pwd)
|
|
frontend_path="${root_dir}/frontend"
|
|
rust_crate_path="${root_dir}/crates/desktop/artcraft"
|
|
|
|
sqlite_db_file="/tmp/tasks.sqlite"
|
|
|
|
# The tauri dev server integration is super annoying: It eats ctrl-c interrupts,
|
|
# it decoheres the and corrupts terminal output, and it's slow. This configuration
|
|
# allows us to start without it. Simply launch `nx` and the dev server as a separate
|
|
# process and leave tauri out of the loop
|
|
config_path="${rust_crate_path}/tauri-dev-static.conf.json"
|
|
|
|
export TAURI_FRONTEND_PATH="${frontend_path}"
|
|
export TAURI_APP_PATH="${rust_crate_path}"
|
|
|
|
echo "Create database file..."
|
|
touch "${sqlite_db_file}"
|
|
|
|
sqlx_migrate() {
|
|
echo "SQLx migrate database file..."
|
|
sqlx migrate run \
|
|
--database-url "sqlite:${sqlite_db_file}" \
|
|
--source "${root_dir}/_database/sql/artcraft_migrations"
|
|
|
|
export DATABASE_URL="sqlite:${sqlite_db_file}"
|
|
}
|
|
|
|
sqlx_offline() {
|
|
echo "SQLx offline..."
|
|
export SQLX_OFFLINE=true
|
|
}
|
|
|
|
# NB: Switch this for actively developing queries.
|
|
#sqlx_migrate
|
|
sqlx_offline
|
|
|
|
# Issue with Linux performance
|
|
# https://github.com/tauri-apps/tauri/issues/13498
|
|
export WEBKIT_DISABLE_DMABUF_RENDERER=1
|
|
export WEBKIT_DISABLE_COMPOSITING_MODE=1
|
|
|
|
echo "Build and run..."
|
|
RUSTFLAGS="-Awarnings" cargo tauri dev \
|
|
--no-dev-server \
|
|
--no-dev-server-wait \
|
|
--no-watch \
|
|
--config "${config_path}"
|