package main import ( "log/slog" "os" "path/filepath" ) func main() { configDir, err := os.UserConfigDir() if err != nil { slog.Error("Cant get user config dir") panic(err) } file, err := os.OpenFile(filepath.Join(configDir, "work", "workctl.log"), os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666) if err != nil { panic(err) } defer file.Close() logger := slog.New(slog.NewTextHandler(file, nil)) slog.SetDefault(logger) app, err := NewApp() if err != nil { slog.Error("Unable to setup application", "Error", err) os.Exit(1) } defer func() { if err := app.Close(); err != nil { slog.Error("Failed to close application resources", "Error", err) } }() if len(os.Args) > 1 { if err := app.setupCommands().Execute(); err != nil { os.Exit(1) } } else { app.makeChoice() } }