@echo off setlocal cd /d "%~dp0" set "LOCAL_GOCACHE=%CD%\.gocache-build" if exist "%LOCAL_GOCACHE%" rmdir /s /q "%LOCAL_GOCACHE%" >nul 2>nul set "GOCACHE=%LOCAL_GOCACHE%" echo Baue Windows x64... if exist nsfwapp.exe del /q nsfwapp.exe >nul 2>nul set GOOS=windows set GOARCH=amd64 set CGO_ENABLED=1 go build -ldflags="-H=windowsgui" -o nsfwapp.exe if errorlevel 1 goto error echo. echo Baue Debian/Linux x64 via WSL... if exist nsfwapp-linux-amd64 del /q nsfwapp-linux-amd64 >nul 2>nul where wsl >nul 2>nul if errorlevel 1 goto wsl_missing set "WSL_CWD=" for /f "delims=" %%i in ('wsl wslpath -a "%CD%" 2^>nul') do set "WSL_CWD=%%i" if "%WSL_CWD%"=="" goto wsl_path_error if not "%WSL_CWD:~0,1%"=="/" goto wsl_missing wsl bash -lc "command -v go >/dev/null 2>&1" if errorlevel 1 goto wsl_go_missing wsl bash -lc "command -v gcc >/dev/null 2>&1 && command -v pkg-config >/dev/null 2>&1" if errorlevel 1 goto wsl_build_deps_missing wsl bash -lc "cd ""%WSL_CWD%"" && mkdir -p .gocache-linux && GOOS=linux GOARCH=amd64 CGO_ENABLED=1 GOCACHE=""$PWD/.gocache-linux"" go build -o nsfwapp-linux-amd64" if errorlevel 1 goto error if not exist nsfwapp-linux-amd64 goto linux_output_missing echo. echo Build erfolgreich. echo Windows: nsfwapp.exe echo Debian: nsfwapp-linux-amd64 goto end :error echo. echo Build fehlgeschlagen. call :cleanup_cache exit /b 1 :wsl_missing echo. echo Debian/Linux-Build braucht eine installierte WSL-Linux-Distribution. echo Aktuell kann WSL nicht gestartet werden. echo. echo Einmalig installieren, z.B.: echo wsl --install -d Debian echo. echo In Debian danach die Build-Abhaengigkeiten installieren: echo sudo apt update echo sudo apt install -y build-essential pkg-config libgtk-3-dev libayatana-appindicator3-dev echo. call :cleanup_cache exit /b 1 :wsl_go_missing echo. echo In WSL ist Go nicht installiert oder nicht im PATH. echo. echo In Debian installieren: echo sudo apt update echo sudo apt install -y golang-go echo. echo Falls Debian eine zu alte Go-Version installiert, installiere Go passend zu go.mod von go.dev echo und setze PATH in ~/.profile oder ~/.bashrc, z.B.: echo export PATH=/usr/local/go/bin:$PATH echo. call :cleanup_cache exit /b 1 :wsl_build_deps_missing echo. echo In WSL fehlen Build-Abhaengigkeiten fuer den Linux-Build. echo. echo In Debian installieren: echo sudo apt update echo sudo apt install -y build-essential pkg-config libgtk-3-dev libayatana-appindicator3-dev echo. call :cleanup_cache exit /b 1 :wsl_path_error echo. echo WSL-Pfad konnte nicht aus dem Windows-Pfad erzeugt werden: echo %CD% call :cleanup_cache exit /b 1 :linux_output_missing echo. echo Debian/Linux-Build wurde nicht erzeugt: echo nsfwapp-linux-amd64 echo. echo Pruefe, ob in WSL eine Debian/Ubuntu-Distribution mit Go und den Build-Abhaengigkeiten installiert ist. call :cleanup_cache exit /b 1 :end call :cleanup_cache endlocal exit /b 0 :cleanup_cache if defined LOCAL_GOCACHE if exist "%LOCAL_GOCACHE%" rmdir /s /q "%LOCAL_GOCACHE%" >nul 2>nul if exist "%CD%\.gocache-linux" rmdir /s /q "%CD%\.gocache-linux" >nul 2>nul exit /b 0