fckeuspy-go/vendor/fyne.io/fyne/v2/app/meta_development.go

66 lines
1.3 KiB
Go

package app
import (
"os"
"path/filepath"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/internal/build"
"fyne.io/fyne/v2/internal/metadata"
)
func checkLocalMetadata() {
if build.NoMetadata || build.Mode == fyne.BuildRelease {
return
}
dir := getProjectPath()
file := filepath.Join(dir, "FyneApp.toml")
ref, err := os.Open(file)
if err != nil { // no worries, this is just an optional fallback
return
}
defer ref.Close()
data, err := metadata.Load(ref)
if err != nil || data == nil {
fyne.LogError("failed to parse FyneApp.toml", err)
return
}
meta.ID = data.Details.ID
meta.Name = data.Details.Name
meta.Version = data.Details.Version
meta.Build = data.Details.Build
if data.Details.Icon != "" {
res, err := fyne.LoadResourceFromPath(data.Details.Icon)
if err == nil {
meta.Icon = metadata.ScaleIcon(res, 512)
}
}
meta.Release = false
meta.Custom = data.Development
meta.Migrations = data.Migrations
}
func getProjectPath() string {
exe, err := os.Executable()
work, _ := os.Getwd()
if err != nil {
fyne.LogError("failed to lookup build executable", err)
return work
}
temp := os.TempDir()
if strings.Contains(exe, temp) || strings.Contains(exe, "go-build") { // this happens with "go run"
return work
}
// we were called with an executable from "go build"
return filepath.Dir(exe)
}