package main import ( "embed" "flag" "fmt" "io" "log" "os" "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/assetserver" ) //go:embed all:frontend/dist var assets embed.FS var Error *log.Logger func init() { log.SetFlags(log.Lmicroseconds | log.Lshortfile) logFile, err := os.Create("main.log") if err != nil { log.Printf("Error creating log file: %v", err) os.Exit(1) } logger := io.MultiWriter(os.Stdout, logFile) log.SetOutput(logger) Error = log.New(io.MultiWriter(logFile, os.Stderr, os.Stdout), fmt.Sprintf("%sERROR:%s ", "\033[0;101m", "\033[0m"), log.Lmicroseconds|log.Lshortfile) } var ( settingsService *SettingsService foodService *FoodService weightService *WeightService db *DB ) func main() { // var wg sync.WaitGroup // wg.Add(1) dbpath := flag.String("db", "food.db", "Path to the database file") flag.Parse() db := DB{path: *dbpath} err := db.Open() if err != nil { Error.Printf("%++v", err) os.Exit(1) } settingsService := SettingsService{db: &db} err = settingsService.LoadSettings() if err != nil { Error.Printf("%++v", err) os.Exit(1) } log.Printf("Loaded settings as: %++v", Settings) foodService = &FoodService{db: &db} // _, err = foodService.GetRecent() // if err != nil { // Error.Printf("%++v", err) // os.Exit(1) // } // food, err := foodService.Create(Food{food: "test", amount: 1}) // if err != nil { // Error.Printf("%++v", err) // os.Exit(1) // } // log.Println(food) // daily, err := foodService.GetDaily() // if err != nil { // Error.Printf("%++v", err) // os.Exit(1) // } // log.Println(daily) // test := Food{ // food: "test", // amount: rand.Float32(), // rowid: 766, // } // food, err := foodService.Update(test) // if err != nil { // Error.Printf("%++v", err) // os.Exit(1) // } // log.Println(food) // log.Println("done") // wg.Wait() // Create an instance of the app structure app := NewApp() // Create application with options err = wails.Run(&options.App{ Title: "calorie-counter", Width: 1024, Height: 768, AssetServer: &assetserver.Options{ Assets: assets, }, BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, OnStartup: app.startup, Bind: []interface{}{ app, }, }) if err != nil { println("Error:", err.Error()) } }