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