Implement frontend api

This commit is contained in:
2025-01-11 20:37:21 +01:00
parent 75d92a2542
commit 4a6a2cf057
6 changed files with 195 additions and 37 deletions

36
main.go
View File

@@ -7,7 +7,6 @@ import (
"io"
"log"
"os"
"os/signal"
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/options"
@@ -39,45 +38,35 @@ type Settings struct {
Addons map[string]Addon `json:"addons"`
}
func SaveSettings(settings Settings) error {
log.Printf("Saving settings: %+v", settings)
settingsFile, err := os.OpenFile(settingsFilePath, os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
Error.Printf("error opening settings file: %s", err)
return err
}
defer settingsFile.Close()
return json.NewEncoder(settingsFile).Encode(settings)
}
func main() {
settingsFile, err := os.OpenFile(settingsFilePath, os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
Error.Printf("error opening settings file: %s", err)
return
}
defer settingsFile.Close()
settings := Settings{}
err = json.NewDecoder(settingsFile).Decode(&settings)
if err != nil {
Warning.Printf("error decoding settings: %s", err)
settings = Settings{}
}
settingsFile.Close()
log.Printf("Loaded settings: %+v", settings)
addonService = &AddonService{}
addonService.Addons = settings.Addons
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func() {
<-c
err = settingsFile.Truncate(0)
if err != nil {
Error.Printf("error truncating settings file: %s", err)
}
_, err = settingsFile.Seek(0, 0)
if err != nil {
Error.Printf("error seeking settings file: %s", err)
}
err = json.NewEncoder(settingsFile).Encode(settings)
if err != nil {
Error.Printf("error encoding settings: %s", err)
}
settingsFile.Close()
os.Exit(0)
}()
return
app := NewApp()
err = wails.Run(&options.App{
@@ -97,4 +86,5 @@ func main() {
if err != nil {
println("Error:", err.Error())
}
SaveSettings(settings)
}