mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-07 03:50:59 +08:00

* Add service registration method * Fix error handling and formatting in messageprocessor * Add configurable error handling * Improve error strings * Fix service shutdown on macOS * Add post shutdown hook * Better fatal errors * Add startup/shutdown sequence tests * Improve debug messages * Update JS runtime * Update docs * Update changelog * Fix log message in clipboard message processor Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Remove panic in RegisterService * Fix linux tests (hopefully) * Fix error formatting everywhere * Fix typo in windows webview * Tidy example mods * Set application name in tests * Fix ubuntu test workflow * Cleanup template test pipeline * Fix dev build detection on Go 1.24 * Update template go.mod/sum to Go 1.24 * Remove redundant caching in template tests * Final format string cleanup * Fix wails3 tool references * Fix legacy log calls * Remove formatJS and simplify format strings * Fix indirect import --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
41 lines
865 B
Go
41 lines
865 B
Go
package buildinfo
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime/debug"
|
|
"slices"
|
|
|
|
"github.com/samber/lo"
|
|
)
|
|
|
|
type Info struct {
|
|
Development bool
|
|
Version string
|
|
BuildSettings map[string]string
|
|
wailsPackage *debug.Module
|
|
}
|
|
|
|
func Get() (*Info, error) {
|
|
|
|
var result Info
|
|
|
|
// BuildInfo contains the build info for the application
|
|
var BuildInfo *debug.BuildInfo
|
|
|
|
var ok bool
|
|
BuildInfo, ok = debug.ReadBuildInfo()
|
|
if !ok {
|
|
return nil, fmt.Errorf("could not read build info from binary")
|
|
}
|
|
result.BuildSettings = lo.Associate(BuildInfo.Settings, func(setting debug.BuildSetting) (string, string) {
|
|
return setting.Key, setting.Value
|
|
})
|
|
result.Version = BuildInfo.Main.Version
|
|
result.Development = -1 != slices.IndexFunc(BuildInfo.Settings, func(setting debug.BuildSetting) bool {
|
|
return setting.Key == "vcs" && setting.Value == "git"
|
|
})
|
|
|
|
return &result, nil
|
|
|
|
}
|