From 66c196ed975adfbf7d3aa8f100365890b05c0ec6 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 19 May 2022 15:31:21 -0600 Subject: [PATCH] Make 'web' the default output for `fyne serve` with added messaging to install gopherjs if necessary. --- cmd/fyne/internal/commands/build.go | 6 ++++ cmd/fyne/internal/commands/build_test.go | 10 ++++++ cmd/fyne/internal/commands/package_test.go | 40 ++++++++++++++++++++++ cmd/fyne/internal/commands/serve.go | 2 +- 4 files changed, 57 insertions(+), 1 deletion(-) diff --git a/cmd/fyne/internal/commands/build.go b/cmd/fyne/internal/commands/build.go index f9d4763d47..7e361e2be9 100644 --- a/cmd/fyne/internal/commands/build.go +++ b/cmd/fyne/internal/commands/build.go @@ -202,6 +202,12 @@ func (b *Builder) build() error { versionConstraint = version.NewConstrainGroupFromString(">=1.17") env = append(env, "GOARCH=wasm") env = append(env, "GOOS=js") + } else if goos == "gopherjs" { + _, err := b.runner.runOutput("version") + if err != nil { + fmt.Fprintf(os.Stderr, "Can not execute `gopherjs version`. Please do `go install github.com/gopherjs/gopherjs@latest`.\n") + return err + } } if err := checkGoVersion(b.runner, versionConstraint); err != nil { diff --git a/cmd/fyne/internal/commands/build_test.go b/cmd/fyne/internal/commands/build_test.go index b444fd3cb0..f9df58623a 100644 --- a/cmd/fyne/internal/commands/build_test.go +++ b/cmd/fyne/internal/commands/build_test.go @@ -164,6 +164,16 @@ func Test_BuildWasmReleaseVersion(t *testing.T) { func Test_BuildGopherJSReleaseVersion(t *testing.T) { expected := []mockRunner{ + { + expectedValue: expectedValue{ + args: []string{"version"}, + osEnv: true, + }, + mockReturn: mockReturn{ + ret: []byte(""), + err: nil, + }, + }, { expectedValue: expectedValue{ args: []string{"build", "--tags", "release"}, diff --git a/cmd/fyne/internal/commands/package_test.go b/cmd/fyne/internal/commands/package_test.go index 727eefd188..39600334e0 100644 --- a/cmd/fyne/internal/commands/package_test.go +++ b/cmd/fyne/internal/commands/package_test.go @@ -202,6 +202,16 @@ func Test_PackageWasm(t *testing.T) { func Test_buildPackageGopherJS(t *testing.T) { expected := []mockRunner{ + { + expectedValue: expectedValue{ + args: []string{"version"}, + osEnv: true, + }, + mockReturn: mockReturn{ + ret: []byte(""), + err: nil, + }, + }, { expectedValue: expectedValue{ args: []string{"build", "-o", "myTest.js", "--tags", "release"}, @@ -230,6 +240,16 @@ func Test_buildPackageGopherJS(t *testing.T) { func Test_PackageGopherJS(t *testing.T) { expected := []mockRunner{ + { + expectedValue: expectedValue{ + args: []string{"version"}, + osEnv: true, + }, + mockReturn: mockReturn{ + ret: []byte(""), + err: nil, + }, + }, { expectedValue: expectedValue{ args: []string{"build", @@ -327,6 +347,16 @@ func Test_BuildPackageWeb(t *testing.T) { ret: []byte(""), }, }, + { + expectedValue: expectedValue{ + args: []string{"version"}, + osEnv: true, + }, + mockReturn: mockReturn{ + ret: []byte(""), + err: nil, + }, + }, { expectedValue: expectedValue{ args: []string{"build", "-o", "myTest.js", "--tags", "release"}, @@ -374,6 +404,16 @@ func Test_PackageWeb(t *testing.T) { ret: []byte(""), }, }, + { + expectedValue: expectedValue{ + args: []string{"version"}, + osEnv: true, + }, + mockReturn: mockReturn{ + ret: []byte(""), + err: nil, + }, + }, { expectedValue: expectedValue{ args: []string{"build", diff --git a/cmd/fyne/internal/commands/serve.go b/cmd/fyne/internal/commands/serve.go index 63242c1506..ce67c02824 100644 --- a/cmd/fyne/internal/commands/serve.go +++ b/cmd/fyne/internal/commands/serve.go @@ -47,7 +47,7 @@ func Serve() *cli.Command { Name: "target", Aliases: []string{"os"}, Usage: "The web runtime to target (wasm, gopherjs, web).", - Value: "wasm", + Value: "web", Destination: &s.os, }, },