迁移并重构项目,优化了执行流程
This commit is contained in:
		
							
								
								
									
										70
									
								
								cmd/safelineApi/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								cmd/safelineApi/main.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"SafeLine-Acme/internal/Func"
 | 
			
		||||
	"SafeLine-Acme/internal/app/logger"
 | 
			
		||||
	"SafeLine-Acme/internal/class/Config"
 | 
			
		||||
	"SafeLine-Acme/internal/class/SafeLine"
 | 
			
		||||
	"SafeLine-Acme/pkg/utils"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	logger.LogInit()
 | 
			
		||||
 | 
			
		||||
	var conf Config.Object
 | 
			
		||||
	if len(os.Args) == 1 || os.Args[1][0] == '-' {
 | 
			
		||||
		conf.Command()
 | 
			
		||||
	} else {
 | 
			
		||||
		conf.Read(os.Args[1])
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if !conf.Server.Verify() {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	certUpsert, noUpdate := Func.UpdateCertCheck(conf.Server, conf.Days)
 | 
			
		||||
	if noUpdate {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	providers, noProvider := Func.ChooseProvider(conf.Acme)
 | 
			
		||||
	if noProvider {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var failedApply [][]string
 | 
			
		||||
	var successApply [][]string
 | 
			
		||||
 | 
			
		||||
	var taskChan = make(chan struct{}, conf.Concurrency)
 | 
			
		||||
 | 
			
		||||
	for _, cert := range certUpsert {
 | 
			
		||||
		taskChan <- struct{}{}
 | 
			
		||||
		go func(cert SafeLine.Nodes, server SafeLine.Object, email string) {
 | 
			
		||||
			Certificate, PrivateKey, err := utils.ApplyCert(cert.Domains, email, providers[0])
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				failedApply = append(failedApply, cert.Domains)
 | 
			
		||||
				logger.Error.Printf("申请 %s%s%s 证书时发生错误: %s%s%s", logger.Cyan, cert.Domains, logger.Reset, logger.Red, err, logger.Reset)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			success, failed := server.UpdateCert(email, Certificate, PrivateKey, cert)
 | 
			
		||||
			if success != nil {
 | 
			
		||||
				successApply = append(successApply, success)
 | 
			
		||||
			}
 | 
			
		||||
			if failed != nil {
 | 
			
		||||
				failedApply = append(failedApply, failed)
 | 
			
		||||
			}
 | 
			
		||||
			<-taskChan
 | 
			
		||||
		}(cert, conf.Server, conf.Acme.Email)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(successApply) != 0 {
 | 
			
		||||
		log.Printf("本次成功更新的域名证书如下: %s%s%s", logger.Cyan, successApply, logger.Reset)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(failedApply) != 0 {
 | 
			
		||||
		log.Printf("未成功更新的域名证书如下: %s%s%s", logger.Cyan, failedApply, logger.Reset)
 | 
			
		||||
	}
 | 
			
		||||
	log.Printf("本次任务执行完成")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								cmd/safelineApi/test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								cmd/safelineApi/test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"SafeLine-Acme/internal/class/Config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	var c Config.Object
 | 
			
		||||
	c.Default()
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user