迁移并重构项目,优化了执行流程
This commit is contained in:
57
internal/class/Acme/Check.go
Normal file
57
internal/class/Acme/Check.go
Normal file
@ -0,0 +1,57 @@
|
||||
package Acme
|
||||
|
||||
import (
|
||||
"SafeLine-Acme/internal/app/logger"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
func (acme *Object) CheckFile() bool {
|
||||
var flag = true
|
||||
if acme.Email == "" {
|
||||
logger.Warning.Printf("未设置 %s证书申请邮箱%s: 请检查配置文件中的 %sAcme.Email%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
|
||||
flag = false
|
||||
}
|
||||
|
||||
v := reflect.ValueOf(acme.DNSProvider)
|
||||
var dns = true
|
||||
for i := 0; i < v.NumField(); i++ {
|
||||
field := v.Field(i)
|
||||
if field.Kind() == reflect.Struct {
|
||||
for ii := 0; ii < field.NumField(); ii++ {
|
||||
if field.Field(ii).String() != "" {
|
||||
dns = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if dns {
|
||||
logger.Warning.Printf("未设置 %sDNS服务提供商%s: 请检查配置文件中的 %sAcme.DNSProvider%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
|
||||
}
|
||||
return flag
|
||||
}
|
||||
|
||||
func (acme *Object) CheckCommand() bool {
|
||||
var flag = true
|
||||
if acme.Email == "" {
|
||||
logger.Warning.Printf("未设置 %s证书申请邮箱%s: 请检查命令中的 %s-e%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
|
||||
flag = false
|
||||
}
|
||||
|
||||
v := reflect.ValueOf(acme.DNSProvider).Elem()
|
||||
|
||||
var dns = true
|
||||
for i := 0; i < v.NumField(); i++ {
|
||||
field := v.Field(i)
|
||||
if field.Kind() == reflect.Struct {
|
||||
for ii := 0; ii < field.NumField(); ii++ {
|
||||
if field.Field(ii).String() != "" {
|
||||
dns = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if dns {
|
||||
logger.Warning.Printf("未设置 %sDNS服务提供商%s: 请检查命令中的 %s-k%s 参数", logger.Cyan, logger.Reset, logger.Yellow, logger.Reset)
|
||||
}
|
||||
return flag
|
||||
}
|
||||
20
internal/class/Acme/Method.go
Normal file
20
internal/class/Acme/Method.go
Normal file
@ -0,0 +1,20 @@
|
||||
package Acme
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (acme *Object) EmailVerify() bool {
|
||||
var EmailRegex = regexp.MustCompile(`^[a-zA-Z0-9.!#$%&'*+/=?^_{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$`)
|
||||
email := strings.TrimSpace(acme.Email)
|
||||
if len(email) < 3 || len(email) > 254 {
|
||||
return false
|
||||
}
|
||||
return EmailRegex.MatchString(email)
|
||||
}
|
||||
|
||||
func (acme *Object) DNSProviderVerify() bool {
|
||||
acme.DNSProvider.Choose()
|
||||
return true
|
||||
}
|
||||
10
internal/class/Acme/Object.go
Normal file
10
internal/class/Acme/Object.go
Normal file
@ -0,0 +1,10 @@
|
||||
package Acme
|
||||
|
||||
import (
|
||||
"SafeLine-Acme/internal/class/DNSProvider"
|
||||
)
|
||||
|
||||
type Object struct {
|
||||
Email string `json:"Email"`
|
||||
DNSProvider DNSProvider.Object `json:"DNSProvider"`
|
||||
}
|
||||
Reference in New Issue
Block a user