main.go 881 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "flag"
  4. "log"
  5. "os"
  6. "path/filepath"
  7. "github.com/ayntgl/discordo/config"
  8. "github.com/ayntgl/discordo/ui"
  9. "github.com/zalando/go-keyring"
  10. )
  11. var tokenFlag string
  12. func init() {
  13. flag.StringVar(&tokenFlag, "token", "", "The authentication token.")
  14. path, _ := os.UserCacheDir()
  15. path = filepath.Join(path, config.Name+".log")
  16. f, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, os.ModePerm)
  17. if err != nil {
  18. log.Fatal(err)
  19. }
  20. log.SetOutput(f)
  21. log.SetFlags(log.LstdFlags | log.Llongfile)
  22. }
  23. func main() {
  24. flag.Parse()
  25. cfg := config.New()
  26. if err := cfg.Load(); err != nil {
  27. log.Fatal(err)
  28. }
  29. if tokenFlag != "" {
  30. go keyring.Set(config.Name, "token", tokenFlag)
  31. } else {
  32. var err error
  33. tokenFlag, err = keyring.Get(config.Name, "token")
  34. if err != nil {
  35. log.Println(err)
  36. }
  37. }
  38. app := ui.NewApplication(cfg)
  39. app.Run(tokenFlag)
  40. }