Phase 1 of plan 009. The app still builds and runs on v2 — nothing in main.go or backend/ has moved yet — but the v3 CLI, its pinned runtime and its build-asset tree are now present, which is what Phase 2 needs. - wails/v3 v3.0.0-beta.8 pinned per D5, and wails3 added to the `tool` block beside the v2 CLI per D3. Both are vendored; neither is a global install. - build/ now holds the v3 build assets, copied wholesale from a `wails3 init` scaffold rather than hand-written. That collides with this repo's existing use of build/ as ignored build *output*, so .gitignore narrows to build/bin/ and bin/ and the assets are tracked. The mobile platforms are not carried: this is a desktop player (MPRIS over D-Bus, beep, XDG paths) and cannot target them. - build/config.yml's info block is filled from wails.json, which stays for now because the v2 CLI still reads it. - Taskfile.yml defaults PACKAGE_MANAGER to pnpm, since the scaffold assumes npm and frontend/package.json.md5 is part of the dep-caching scheme. One deviation from the plan worth recording. webkitgtk-6.0 is not installed on this machine, so the default GTK4 path is unavailable and the gtk3 fallback is in use. That also means `go tool wails3` does not work — the CLI itself fails to compile without webkitgtk-6.0 — while `go run -tags gtk3 .../cmd/wails3` does. The Makefile rewrite in the next commit has to account for that, and it goes away once the GTK4 dependency is installed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDCbcCZQepnpSQYJ6SxxZm
36 lines
1.1 KiB
Bash
36 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Copyright (c) 2018-Present Lea Anthony
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
# Fail script on any error
|
|
set -euxo pipefail
|
|
|
|
# Define variables
|
|
APP_DIR="${APP_NAME}.AppDir"
|
|
|
|
# Create AppDir structure
|
|
mkdir -p "${APP_DIR}/usr/bin"
|
|
cp -r "${APP_BINARY}" "${APP_DIR}/usr/bin/"
|
|
cp "${ICON_PATH}" "${APP_DIR}/"
|
|
cp "${DESKTOP_FILE}" "${APP_DIR}/"
|
|
|
|
if [[ $(uname -m) == *x86_64* ]]; then
|
|
# Download linuxdeploy and make it executable
|
|
wget -q -4 -N https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
|
chmod +x linuxdeploy-x86_64.AppImage
|
|
|
|
# Run linuxdeploy to bundle the application
|
|
./linuxdeploy-x86_64.AppImage --appdir "${APP_DIR}" --output appimage
|
|
else
|
|
# Download linuxdeploy and make it executable (arm64)
|
|
wget -q -4 -N https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-aarch64.AppImage
|
|
chmod +x linuxdeploy-aarch64.AppImage
|
|
|
|
# Run linuxdeploy to bundle the application (arm64)
|
|
./linuxdeploy-aarch64.AppImage --appdir "${APP_DIR}" --output appimage
|
|
fi
|
|
|
|
# Rename the generated AppImage
|
|
mv "${APP_NAME}*.AppImage" "${APP_NAME}.AppImage"
|
|
|