package wails import ( "context" "fmt" "log" "github.com/google/shlex" "lmika.dev/actions/wails-release/internal/runner" ) // BuildOpts configures a Wails build. type BuildOpts struct { Dir string ExtraFlags string } // Build runs `wails build` with our mandatory flags plus any extras. func Build(ctx context.Context, r runner.Runner, opts BuildOpts) error { args := []string{"build", "-platform", "darwin/universal", "-clean", "-trimpath"} if opts.ExtraFlags != "" { extra, err := shlex.Split(opts.ExtraFlags) if err != nil { return fmt.Errorf("parse extra-build-flags: %w", err) } args = append(args, extra...) } log.Printf("build: wails %v", args) if _, err := r.Run(ctx, runner.Spec{Name: "wails", Args: args, Dir: opts.Dir}); err != nil { return fmt.Errorf("wails build: %w", err) } return nil }