Building

The app is experimental and was made for prototyping purposes.

It is currently not available as a packaged release.

This guide covers building both the CLI and GUI components.

Tip

If you don’t want to build the app, release artifacts are provided in the GitHub releases provided in the repo.

Prerequisites

  • Go 1.20 or later

  • Flutter 3.0 or later

  • Windows 11

Quickstart

For the fastest setup, use the provided batch files:

git clone https://github.com/edibotopic/wslp
cd wslp
./build.bat

This builds both the CLI and GUI in one step.

After building:

  • CLI usage: Run wslp.exe commands

  • GUI usage: Run rungui.bat

Running rungui.bat automatically starts the server also.

Building the CLI

The CLI is a Go application using Cobra for command-line interface.

You first need to clone the repo:

git clone https://github.com/edibotopic/wslp

Standard build

cd wslp
go build -o wslp.exe

This creates an executable wslp.exe in the current directory.

(optional) Install globally

go install

This installs wslp to your $GOPATH/bin directory.

Building the GUI

The GUI is a Flutter application that communicates with the Go backend via HTTP.

Build for Windows

flutter build windows

The compiled application will be in gui/build/windows/runner/Release/.

Using the GUI

The GUI requires the backend server to be running.

Start it with:

wslp.exe serve

Then run the GUI.

Development

Run CLI in development

go run main.go [command]

Example:

go run main.go list

Run GUI in development

cd gui
flutter run -d windows

Testing

Test Go code

go test ./...

Test with coverage

go test -cover ./...

Test Specific Package

go test ./internal/wsl
go test ./cmd

Cross-compilation

Since WSL Plus is Windows-specific, cross-compilation to other platforms is not supported.