nginx-ui/internal/self_check/self_check.go
2025-05-03 07:56:10 +08:00

39 lines
763 B
Go

package self_check
import (
"errors"
"github.com/uozi-tech/cosy"
)
func Run() (reports Reports) {
reports = make(Reports, 0)
for _, task := range selfCheckTasks {
var cErr *cosy.Error
status := ReportStatusSuccess
if err := task.CheckFunc(); err != nil {
errors.As(err, &cErr)
status = ReportStatusError
}
reports = append(reports, &Report{
Key: task.Key,
Name: task.Name,
Description: task.Description,
Fixable: task.FixFunc != nil,
Err: cErr,
Status: status,
})
}
return
}
func AttemptFix(taskName string) (err error) {
task, ok := selfCheckTaskMap.Get(taskName)
if !ok {
return ErrTaskNotFound
}
if task.FixFunc == nil {
return ErrTaskNotFixable
}
return task.FixFunc()
}