Files
wails_tools/pkg/wails3kit/updates/platform/darwin/darwin.go
2026-03-12 22:16:34 +01:00

32 lines
749 B
Go

package darwin
import (
"errors"
"path/filepath"
"github.com/Eriyc/rules_wails/pkg/wails3kit/updates"
"github.com/Eriyc/rules_wails/pkg/wails3kit/updates/platform"
)
func New() updates.PlatformInstaller {
return platform.New(DetectInstallRoot)
}
func DetectInstallRoot(app updates.AppDescriptor) (updates.InstallRoot, error) {
if app.ExecutablePath == "" {
return updates.InstallRoot{}, errors.New("missing executable path")
}
current := filepath.Dir(app.ExecutablePath)
for {
if filepath.Ext(current) == ".app" {
return updates.InstallRoot{Path: current}, nil
}
parent := filepath.Dir(current)
if parent == current {
return updates.InstallRoot{}, errors.New("unable to locate .app bundle")
}
current = parent
}
}