magic/cmd/nginx/check.go
2026-03-28 19:25:12 +08:00

54 lines
1.2 KiB
Go

package nginx
import (
"context"
"fmt"
"os/exec"
"strings"
"gitea.micah.wiki/pandora/naive/pkg/filex"
"gitea.micah.wiki/pandora/magic/config"
)
func Check(_ context.Context, nginx *config.Nginx) (bool, error) {
_, err := exec.LookPath("nginx")
if err != nil {
return false, err
}
if b, err := filex.Exists(nginx.RootPath); err != nil {
return false, err
} else if !b {
return false, fmt.Errorf("nginx.RootPath: %s, 不存在", nginx.RootPath)
}
if b, err := filex.Exists(nginx.LogPath); err != nil {
return false, err
} else if !b {
return false, fmt.Errorf("nginx.LogPath: %s, 不存在", nginx.LogPath)
}
if b, err := filex.Exists(nginx.SSLPath); err != nil {
return false, err
} else if !b {
return false, fmt.Errorf("nginx.SSLPath: %s, 不存在", nginx.SSLPath)
}
if b, err := filex.Exists(nginx.ConfigPath); err != nil {
return false, err
} else if !b {
return false, fmt.Errorf("nginx.ConfigPath: %s, 不存在", nginx.ConfigPath)
}
if len(nginx.Domain) == 0 {
return false, fmt.Errorf("nginx.Domain 为空")
}
if len(nginx.Proxy) == 0 || !strings.HasPrefix(nginx.Proxy, "http") {
return false, fmt.Errorf("nginx.Proxy 为空 或者 不是以http开头")
}
return true, nil
}