75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"embed"
 | |
| 	"flag"
 | |
| 	"fmt"
 | |
| 	"io"
 | |
| 	"log"
 | |
| 	"os"
 | |
| 	"sync"
 | |
| 
 | |
| 	"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)
 | |
| }
 | |
| 
 | |
| 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)
 | |
| 	}
 | |
| 
 | |
| 	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())
 | |
| 	}
 | |
| }
 |