serve.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package cmd
  2. import (
  3. "path/filepath"
  4. "github.com/drakkan/sftpgo/ldapauthserver/config"
  5. "github.com/drakkan/sftpgo/ldapauthserver/httpd"
  6. "github.com/drakkan/sftpgo/ldapauthserver/logger"
  7. "github.com/drakkan/sftpgo/ldapauthserver/utils"
  8. "github.com/rs/zerolog"
  9. "github.com/spf13/cobra"
  10. )
  11. var (
  12. serveCmd = &cobra.Command{
  13. Use: "serve",
  14. Short: "Start the LDAP Authentication Server",
  15. Long: `To start the server with the default values for the command line flags simply use:
  16. ldapauthserver serve
  17. Please take a look at the usage below to customize the startup options`,
  18. Run: func(cmd *cobra.Command, args []string) {
  19. startServer()
  20. },
  21. }
  22. )
  23. func init() {
  24. rootCmd.AddCommand(serveCmd)
  25. addServeFlags(serveCmd)
  26. }
  27. func startServer() error {
  28. logLevel := zerolog.DebugLevel
  29. if !logVerbose {
  30. logLevel = zerolog.InfoLevel
  31. }
  32. if !filepath.IsAbs(logFilePath) && utils.IsFileInputValid(logFilePath) {
  33. logFilePath = filepath.Join(configDir, logFilePath)
  34. }
  35. logger.InitLogger(logFilePath, logMaxSize, logMaxBackups, logMaxAge, logCompress, logLevel)
  36. version := utils.GetAppVersion()
  37. logger.Info(logSender, "", "starting LDAP Auth Server %v, config dir: %v, config file: %v, log max size: %v log max backups: %v "+
  38. "log max age: %v log verbose: %v, log compress: %v", version.GetVersionAsString(), configDir, configFile, logMaxSize,
  39. logMaxBackups, logMaxAge, logVerbose, logCompress)
  40. config.LoadConfig(configDir, configFile)
  41. return httpd.StartHTTPServer(configDir, config.GetHTTPDConfig())
  42. }