diff --git a/scripts/build-linux-docker.sh b/scripts/build-linux-docker.sh index 27aa460..9f267db 100644 --- a/scripts/build-linux-docker.sh +++ b/scripts/build-linux-docker.sh @@ -4,7 +4,7 @@ set -euo pipefail # Optional first argument mirrors build-linux.sh. The Docker build still writes # the final artifact into the local dist/ tree, not into the container. The # default includes the application version and target platform. -version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/core/version.go)" +version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/app/version.go)" version="${version:-0.0.0-dev}" tag="gitea.mixdep.ru/mix/gosentry-builder:${version}" output="${1:-dist/linux/gosentry-${version}-linux-amd64}" @@ -26,7 +26,7 @@ docker run --rm \ -v "$(pwd):/src" \ -w /src \ "$tag" \ - bash -c 'CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/core.Version=${VERSION}" -o "${OUTPUT}" ./cmd/gosentry' + bash -c 'CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${VERSION}" -o "${OUTPUT}" ./cmd/gosentry' # Icons are embedded in the Go binary, so there is no assets directory to copy # after extracting the Linux executable. diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh index 375d67f..23b16d3 100644 --- a/scripts/build-linux.sh +++ b/scripts/build-linux.sh @@ -3,7 +3,7 @@ set -euo pipefail # Optional first argument lets a developer or CI job choose the output path. The # default includes the application version and target platform. -version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/core/version.go)" +version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/app/version.go)" version="${version:-0.0.0-dev}" output="${1:-dist/linux/gosentry-${version}-linux-amd64}" mkdir -p "$(dirname "$output")" @@ -17,7 +17,7 @@ export GOARCH=amd64 # -trimpath removes local machine paths from debug/build metadata. -s -w strips # symbol/debug tables to keep the desktop binary smaller. -go build -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/core.Version=${version}" -o "$output" ./cmd/gosentry +go build -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${version}" -o "$output" ./cmd/gosentry # The application icon is embedded by Go, so the Linux build does not need a # sidecar assets directory beside the executable. diff --git a/scripts/build-release-linux.sh b/scripts/build-release-linux.sh index 4c1aca5..b3f8dea 100644 --- a/scripts/build-release-linux.sh +++ b/scripts/build-release-linux.sh @@ -9,7 +9,7 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "${script_dir}/.." && pwd)" cd "$repo_root" -version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/core/version.go)" +version="$(sed -n 's/^var Version = "\(.*\)"/\1/p' src/app/version.go)" version="${version:-0.0.0-dev}" tag="gitea.mixdep.ru/mix/gosentry-builder:${version}" @@ -99,15 +99,15 @@ run_in_builder() { } build_linux_amd64() { - run_in_builder 'mkdir -p dist/linux && CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/core.Version=${VERSION}" -o "dist/linux/gosentry-${VERSION}-linux-amd64" ./cmd/gosentry' + run_in_builder 'mkdir -p dist/linux && CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${VERSION}" -o "dist/linux/gosentry-${VERSION}-linux-amd64" ./cmd/gosentry' } build_linux_arm64() { - run_in_builder 'mkdir -p dist/linux && CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CGO_CFLAGS="--sysroot=/ -I/usr/include/aarch64-linux-gnu" CGO_LDFLAGS="--sysroot=/ -L/usr/lib/aarch64-linux-gnu" PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/core.Version=${VERSION}" -o "dist/linux/gosentry-${VERSION}-linux-arm64" ./cmd/gosentry' + run_in_builder 'mkdir -p dist/linux && CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CGO_CFLAGS="--sysroot=/ -I/usr/include/aarch64-linux-gnu" CGO_LDFLAGS="--sysroot=/ -L/usr/lib/aarch64-linux-gnu" PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig go build -buildvcs=false -trimpath -ldflags "-s -w -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${VERSION}" -o "dist/linux/gosentry-${VERSION}-linux-arm64" ./cmd/gosentry' } build_windows_amd64() { - run_in_builder 'mkdir -p dist/windows && x86_64-w64-mingw32-windres -O coff -o cmd/gosentry/rsrc_windows_amd64.syso packaging/windows/gosentry.rc && CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -H=windowsgui -X gitea.mixdep.ru/mix/gosentry/src/core.Version=${VERSION}" -o "dist/windows/gosentry-${VERSION}-windows-amd64.exe" ./cmd/gosentry' + run_in_builder 'mkdir -p dist/windows && x86_64-w64-mingw32-windres -O coff -o cmd/gosentry/rsrc_windows_amd64.syso packaging/windows/gosentry.rc && CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -buildvcs=false -trimpath -ldflags "-s -w -H=windowsgui -X gitea.mixdep.ru/mix/gosentry/src/app.Version=${VERSION}" -o "dist/windows/gosentry-${VERSION}-windows-amd64.exe" ./cmd/gosentry' } mapfile -t targets < <(choose_targets "$@" | normalize_targets | awk '!seen[$0]++') diff --git a/scripts/build-windows.bat b/scripts/build-windows.bat index 1bc9483..d34870c 100644 --- a/scripts/build-windows.bat +++ b/scripts/build-windows.bat @@ -6,7 +6,7 @@ REM directory. Move to the repository root (the parent of scripts\) before using REM relative paths such as .\cmd\gosentry and packaging\windows\gosentry.rc. cd /d "%~dp0\.." -for /f "tokens=4" %%V in ('findstr /C:"var Version" src\core\version.go') do set "VERSION=%%~V" +for /f "tokens=4" %%V in ('findstr /C:"var Version" src\app\version.go') do set "VERSION=%%~V" if "%VERSION%"=="" set "VERSION=0.0.0-dev" set "VERSION=%VERSION:"=%" @@ -47,7 +47,7 @@ if %ERRORLEVEL%==0 ( REM -trimpath removes local machine paths from the binary, -s -w reduce binary REM size, and -H=windowsgui prevents a separate console window from opening when REM the GUI app starts from Explorer or a shortcut. -"%GOEXE%" build -trimpath -ldflags "-s -w -H=windowsgui -X gitea.mixdep.ru/mix/gosentry/src/core.Version=%VERSION%" -o "%OUTPUT%" .\cmd\gosentry +"%GOEXE%" build -trimpath -ldflags "-s -w -H=windowsgui -X gitea.mixdep.ru/mix/gosentry/src/app.Version=%VERSION%" -o "%OUTPUT%" .\cmd\gosentry if errorlevel 1 exit /b 1 REM Icons are embedded into the executable, so no assets directory is copied next diff --git a/src/core/version.go b/src/app/version.go similarity index 94% rename from src/core/version.go rename to src/app/version.go index 50c98b9..8d10135 100644 --- a/src/core/version.go +++ b/src/app/version.go @@ -1,4 +1,4 @@ -package core +package app // Version is the application version shown in the GUI and used by build // scripts in artifact names. It is a var rather than a const so release builds diff --git a/src/core/model.go b/src/core/model.go deleted file mode 100644 index 9a8bc95..0000000 --- a/src/core/model.go +++ /dev/null @@ -1 +0,0 @@ -package core diff --git a/src/core/paths.go b/src/core/paths.go deleted file mode 100644 index 9a8bc95..0000000 --- a/src/core/paths.go +++ /dev/null @@ -1 +0,0 @@ -package core diff --git a/src/core/store.go b/src/core/store.go deleted file mode 100644 index 9a8bc95..0000000 --- a/src/core/store.go +++ /dev/null @@ -1 +0,0 @@ -package core diff --git a/src/core/store_test.go b/src/core/store_test.go deleted file mode 100644 index 9a8bc95..0000000 --- a/src/core/store_test.go +++ /dev/null @@ -1 +0,0 @@ -package core diff --git a/src/gui/app.go b/src/gui/app.go index a683b16..373c2a4 100644 --- a/src/gui/app.go +++ b/src/gui/app.go @@ -13,7 +13,7 @@ import ( "time" "gitea.mixdep.ru/mix/gosentry/assets" - "gitea.mixdep.ru/mix/gosentry/src/core" + "gitea.mixdep.ru/mix/gosentry/src/app" "gitea.mixdep.ru/mix/gosentry/src/domain" "gitea.mixdep.ru/mix/gosentry/src/platform/autostart" "gitea.mixdep.ru/mix/gosentry/src/platform/desktop" @@ -22,10 +22,10 @@ import ( "gitea.mixdep.ru/mix/gosentry/src/storage" "fyne.io/fyne/v2" - "fyne.io/fyne/v2/app" + fyneapp "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/dialog" - "fyne.io/fyne/v2/driver/desktop" + fynedesktop "fyne.io/fyne/v2/driver/desktop" "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" @@ -60,10 +60,10 @@ func Run(startInTray bool) { // A stable app ID lets Fyne persist desktop preferences consistently across // launches and gives tray/window integration a predictable identity. - a := app.NewWithID(appID) + a := fyneapp.NewWithID(appID) a.SetIcon(loadAppIcon()) - w := a.NewWindow("GoSentry " + core.Version) + w := a.NewWindow("GoSentry " + app.Version) configureSystemTray(a, w) w.Resize(fyne.NewSize(1120, 720)) content, recordStartup := newMainView(w) @@ -91,7 +91,7 @@ func loadAppIcon() fyne.Resource { } func configureSystemTray(a fyne.App, w fyne.Window) { - desk, ok := a.(desktop.App) + desk, ok := a.(fynedesktop.App) if !ok { // Not every Fyne driver exposes desktop tray features. Returning silently // keeps the same binary usable on platforms or sessions without a tray. @@ -1015,7 +1015,7 @@ func settingsView(w fyne.Window, store *storage.Store, jobs *[]job) fyne.CanvasO settingsStatus, widget.NewSeparator(), widget.NewLabelWithStyle("About", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}), - settingsRow("GoSentry", widget.NewLabel(core.Version)), + settingsRow("GoSentry", widget.NewLabel(app.Version)), settingsRow("Go", widget.NewLabel(runtime.Version())), settingsRow("Fyne", widget.NewLabel(fyneVersion())), settingsRow("Repository", widget.NewHyperlink(projectRepositoryURL, mustParseURL(projectRepositoryURL))),