aboutsummaryrefslogtreecommitdiff
path: root/build-native.sh
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:40 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:48 -0600
commit480a57cf037a46f176128e6c94aa5616fcf704a3 (patch)
tree35be94099e2669f518c623acdf8fe23ee82e55a8 /build-native.sh
parent91e1d7f9f03ab3fd77cee94c1eac2abf89254e50 (diff)
Fix Wine prefix deployment, INI handling, and data directory paths
- Fix data directory path to use ~/.var/app/com.fluorine.manager consistently (was ~/.local/share/fluorine in committed code) - Fix VFS helper path in fuseconnector.cpp to use fluorineDataDir() - Fix localAppFolder() to resolve Wine prefix AppData/Local on Linux instead of returning XDG ~/.local/share - Add localAppName() virtual method for correct AppData folder mapping (Enderal→"enderal", Nehrim→"Oblivion") - Fix mergeTweak() to use direct INI parser instead of QSettings which corrupts backslashes and URL-encodes spaces in keys - Make resolveWineDataDirName() more robust with existence checks and fallback chain (documentsDirectory → gameShortName → gameName) - Add comprehensive debug logging throughout Wine prefix deployment - Fix INI case handling: copy instead of symlink for case-mismatched INIs, ensure both proper-case and lowercase aliases exist - Remove native build script (Flatpak only) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'build-native.sh')
-rwxr-xr-xbuild-native.sh82
1 files changed, 0 insertions, 82 deletions
diff --git a/build-native.sh b/build-native.sh
deleted file mode 100755
index 3ebc825..0000000
--- a/build-native.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env bash
-# build-native.sh — Build and install Fluorine Manager natively (non-Flatpak).
-# Uses a container to compile, then installs to ~/.local/share/fluorine/.
-# Override container engine with CONTAINER_ENGINE=docker.
-set -euo pipefail
-
-SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
-IMAGE_NAME="fluorine-builder"
-CONTAINER_ENGINE="${CONTAINER_ENGINE:-podman}"
-INSTALL_DIR="${HOME}/.local/share/fluorine"
-STAGING="${SCRIPT_DIR}/build-container/staging"
-
-# ── Build the container image if it doesn't exist ──
-if ! ${CONTAINER_ENGINE} image exists "${IMAGE_NAME}" 2>/dev/null; then
- echo "Building ${IMAGE_NAME} image (one-time)..."
- ${CONTAINER_ENGINE} build -t "${IMAGE_NAME}" -f "${SCRIPT_DIR}/docker/Dockerfile" "${SCRIPT_DIR}/docker"
-fi
-
-# ── Ensure build dir exists (Podman needs it before mounting) ──
-mkdir -p "${SCRIPT_DIR}/build-container"
-
-# ── Run the build inside the container ──
-echo "Building Fluorine Manager inside container..."
-${CONTAINER_ENGINE} run --rm \
- -v "${SCRIPT_DIR}:/src:Z" \
- -v "${SCRIPT_DIR}/build-container:/src/build:Z" \
- -w /src \
- "${IMAGE_NAME}" \
- bash docker/build-inner.sh
-
-if [ ! -d "${STAGING}" ]; then
- echo "ERROR: Staging directory not found at ${STAGING}"
- exit 1
-fi
-
-# ── Install to ~/.local/share/fluorine/ ──
-echo ""
-echo "Installing to ${INSTALL_DIR}/ ..."
-mkdir -p "${INSTALL_DIR}"
-
-# Remove dangling symlinks left by the Flatpak wrapper (they point to /app/
-# which doesn't exist outside the sandbox) and stale symlinks that conflict
-# with directories from the staging area.
-find "${INSTALL_DIR}" -maxdepth 3 -type l ! -exec test -e {} \; -delete 2>/dev/null || true
-for d in plugins/libs plugins/dlls plugins/data; do
- [ -L "${INSTALL_DIR}/${d}" ] && rm -f "${INSTALL_DIR}/${d}"
-done
-
-# Copy all files, preserving structure. Existing user data (Prefix/, logs/,
-# config/, instances) won't be touched because they're in subdirs that the
-# staging area doesn't contain.
-cp -af "${STAGING}/." "${INSTALL_DIR}/"
-
-# ── Desktop entry ──
-DESKTOP_DIR="${HOME}/.local/share/applications"
-mkdir -p "${DESKTOP_DIR}"
-cat > "${DESKTOP_DIR}/com.fluorine.manager.desktop" <<EOF
-[Desktop Entry]
-Type=Application
-Name=Fluorine Manager
-Comment=Mod Organizer 2 for Linux
-Exec=${INSTALL_DIR}/fluorine-manager
-Icon=com.fluorine.manager
-Terminal=false
-Categories=Game;
-EOF
-
-# Icon
-mkdir -p "${HOME}/.local/share/icons/hicolor/256x256/apps/"
-cp -f "${SCRIPT_DIR}/flatpak/com.fluorine.manager.png" "${HOME}/.local/share/icons/hicolor/256x256/apps/"
-
-# ── Symlink into ~/.local/bin for PATH access ──
-BIN_DIR="${HOME}/.local/bin"
-mkdir -p "${BIN_DIR}"
-ln -sf "${INSTALL_DIR}/fluorine-manager" "${BIN_DIR}/fluorine-manager"
-
-echo ""
-echo "=== Installed ==="
-du -sh "${INSTALL_DIR}"/*/ "${INSTALL_DIR}"/ModOrganizer-core 2>/dev/null | sort -rh
-echo ""
-echo "Fluorine Manager installed to: ${INSTALL_DIR}/"
-echo "Run with: fluorine-manager (or find it in your app launcher)"