wails-release/internal/wails/build.go

32 lines
796 B
Go
Raw Normal View History

package wails
import (
"context"
"fmt"
"github.com/google/shlex"
2026-05-02 01:47:13 +00:00
"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...)
}
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
}