main.go 996 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. import (
  3. "github.com/alecthomas/kong"
  4. "github.com/annybs/shorty/internal/cli"
  5. "github.com/rs/zerolog"
  6. "github.com/spf13/viper"
  7. )
  8. func main() {
  9. // Initialise config from environment
  10. config := viper.New()
  11. config.SetEnvPrefix("shorty")
  12. config.SetDefault("all_path", "/*")
  13. config.SetDefault("database_path", ".shorty")
  14. config.SetDefault("port", "3000")
  15. config.SetDefault("url", "http://localhost:3000")
  16. config.AutomaticEnv()
  17. // Create logger
  18. log := zerolog.New(zerolog.NewConsoleWriter()).With().Timestamp().Logger()
  19. // Initialise and run CLI
  20. vars := kong.Vars{
  21. "all_path": config.GetString("all_path"),
  22. "database_path": config.GetString("database_path"),
  23. "host": config.GetString("host"),
  24. "port": config.GetString("port"),
  25. "token": config.GetString("token"),
  26. "url": config.GetString("url"),
  27. }
  28. ctx := kong.Parse(&cli.CLI{}, vars)
  29. err := ctx.Run(&cli.Context{Config: config, Log: log})
  30. ctx.FatalIfErrorf(err)
  31. }