server.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package server
  2. import (
  3. "github.com/SongZihuan/auto-aliyun-cdn-ssl/src/aliyun"
  4. "github.com/SongZihuan/auto-aliyun-cdn-ssl/src/config"
  5. "github.com/SongZihuan/auto-aliyun-cdn-ssl/src/logger"
  6. "strings"
  7. )
  8. func Server() error {
  9. cfg := config.GetConfig().DomainListsGroup
  10. logger.Info("服务开始...")
  11. for index, collection := range cfg.Collection {
  12. func() {
  13. defer func() {
  14. if r := recover(); r != nil {
  15. if err, ok := r.(error); ok {
  16. logger.Panicf("本集合的域名在进行更新时遇到了 不可预期的严重错误 被recover捕获,类型为error,其他集合继续运行 (域名:%s / 序号:%d) 错误消息: %s", strings.Join(collection.Domain, ", "), index, err.Error())
  17. } else {
  18. logger.Panicf("本集合的域名在进行更新时遇到了 不可预期的严重错误 被recover捕获,其他集合继续运行 (域名:%s / 序号:%d) 错误消息: %v", strings.Join(collection.Domain, ", "), index, r)
  19. }
  20. }
  21. }()
  22. logger.Infof("开始第 %d 组集合(从0算起)的更新服务,包括域名:%s", index, strings.Join(collection.Domain, ", "))
  23. certPath, prikeyPath := collection.GetFilePath()
  24. logger.Infof("获取到证书路径:%s,密钥路径:%s", certPath, prikeyPath)
  25. err := aliyun.UpdateCDNHttpsByFilePath(collection.Domain, certPath, prikeyPath)
  26. if err != nil {
  27. logger.Errorf("本集合的域名在进行更新时遇到了 错误 被recover捕获,类型为error,其他集合继续运行 (域名:%s / 序号:%d) 错误消息: %s", strings.Join(collection.Domain, ", "), index, err.Error())
  28. }
  29. logger.Infof("完成第 %d 组集合(从0算起)的更新服务,包括域名:%s", index, strings.Join(collection.Domain, ", "))
  30. }()
  31. }
  32. logger.Info("服务结束...")
  33. return nil
  34. }