mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
feat(self-check): check stream if stream loaded #1028
Some checks are pending
Build / build_app (push) Waiting to run
Build / build (386, linux) (push) Blocked by required conditions
Build / build (386, windows) (push) Blocked by required conditions
Build / build (amd64, darwin) (push) Blocked by required conditions
Build / build (amd64, linux) (push) Blocked by required conditions
Build / build (amd64, windows) (push) Blocked by required conditions
Build / build (arm, 5, linux) (push) Blocked by required conditions
Build / build (arm, 6, linux) (push) Blocked by required conditions
Build / build (arm, 7, linux) (push) Blocked by required conditions
Build / build (arm64, darwin) (push) Blocked by required conditions
Build / build (arm64, linux) (push) Blocked by required conditions
Build / build (arm64, windows) (push) Blocked by required conditions
Build / build (loong64, linux) (push) Blocked by required conditions
Build / build (mips, linux) (push) Blocked by required conditions
Build / build (mips64, linux) (push) Blocked by required conditions
Build / build (mips64le, linux) (push) Blocked by required conditions
Build / build (mipsle, linux) (push) Blocked by required conditions
Build / build (riscv64, linux) (push) Blocked by required conditions
Build / docker-build (push) Blocked by required conditions
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
Some checks are pending
Build / build_app (push) Waiting to run
Build / build (386, linux) (push) Blocked by required conditions
Build / build (386, windows) (push) Blocked by required conditions
Build / build (amd64, darwin) (push) Blocked by required conditions
Build / build (amd64, linux) (push) Blocked by required conditions
Build / build (amd64, windows) (push) Blocked by required conditions
Build / build (arm, 5, linux) (push) Blocked by required conditions
Build / build (arm, 6, linux) (push) Blocked by required conditions
Build / build (arm, 7, linux) (push) Blocked by required conditions
Build / build (arm64, darwin) (push) Blocked by required conditions
Build / build (arm64, linux) (push) Blocked by required conditions
Build / build (arm64, windows) (push) Blocked by required conditions
Build / build (loong64, linux) (push) Blocked by required conditions
Build / build (mips, linux) (push) Blocked by required conditions
Build / build (mips64, linux) (push) Blocked by required conditions
Build / build (mips64le, linux) (push) Blocked by required conditions
Build / build (mipsle, linux) (push) Blocked by required conditions
Build / build (riscv64, linux) (push) Blocked by required conditions
Build / docker-build (push) Blocked by required conditions
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
This commit is contained in:
parent
c59b81e4c7
commit
202ac03537
15 changed files with 2695 additions and 2106 deletions
44
internal/nginx/modules.go
Normal file
44
internal/nginx/modules.go
Normal file
|
@ -0,0 +1,44 @@
|
|||
package nginx
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
ModuleStream = "stream_module"
|
||||
)
|
||||
|
||||
func GetModules() (modules []string) {
|
||||
out := getNginxV()
|
||||
|
||||
// Regular expression to find modules in nginx -V output
|
||||
r := regexp.MustCompile(`--with-([a-zA-Z0-9_-]+)(_module)?`)
|
||||
|
||||
// Find all matches
|
||||
matches := r.FindAllStringSubmatch(out, -1)
|
||||
|
||||
// Extract module names from matches
|
||||
for _, match := range matches {
|
||||
module := match[1]
|
||||
// If the module doesn't end with "_module", add it
|
||||
if !strings.HasSuffix(module, "_module") {
|
||||
module = module + "_module"
|
||||
}
|
||||
modules = append(modules, module)
|
||||
}
|
||||
|
||||
return modules
|
||||
}
|
||||
|
||||
func IsModuleLoaded(module string) bool {
|
||||
modules := GetModules()
|
||||
|
||||
for _, m := range modules {
|
||||
if m == module {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/0xJacky/Nginx-UI/internal/translation"
|
||||
"github.com/elliotchance/orderedmap/v3"
|
||||
"github.com/uozi-tech/cosy"
|
||||
"github.com/0xJacky/Nginx-UI/internal/nginx"
|
||||
)
|
||||
|
||||
type Task struct {
|
||||
|
@ -44,15 +45,6 @@ var selfCheckTasks = []*Task{
|
|||
CheckFunc: CheckSitesDirectory,
|
||||
FixFunc: FixSitesDirectory,
|
||||
},
|
||||
{
|
||||
Key: "Directory-Streams",
|
||||
Name: translation.C("Streams directory exists"),
|
||||
Description: translation.C("Check if the " +
|
||||
"streams-available and streams-enabled directories are " +
|
||||
"under the nginx configuration directory"),
|
||||
CheckFunc: CheckStreamDirectory,
|
||||
FixFunc: FixStreamDirectory,
|
||||
},
|
||||
{
|
||||
Key: "NginxConf-Sites-Enabled",
|
||||
Name: translation.C("Nginx.conf includes sites-enabled directory"),
|
||||
|
@ -61,14 +53,6 @@ var selfCheckTasks = []*Task{
|
|||
CheckFunc: CheckNginxConfIncludeSites,
|
||||
FixFunc: FixNginxConfIncludeSites,
|
||||
},
|
||||
{
|
||||
Key: "NginxConf-Streams-Enabled",
|
||||
Name: translation.C("Nginx.conf includes streams-enabled directory"),
|
||||
Description: translation.C("Check if the nginx.conf includes the " +
|
||||
"streams-enabled directory"),
|
||||
CheckFunc: CheckNginxConfIncludeStreams,
|
||||
FixFunc: FixNginxConfIncludeStreams,
|
||||
},
|
||||
{
|
||||
Key: "NginxConf-ConfD",
|
||||
Name: translation.C("Nginx.conf includes conf.d directory"),
|
||||
|
@ -112,8 +96,23 @@ var selfCheckTasks = []*Task{
|
|||
var selfCheckTaskMap = orderedmap.NewOrderedMap[string, *Task]()
|
||||
|
||||
func init() {
|
||||
for _, task := range selfCheckTasks {
|
||||
selfCheckTaskMap.Set(task.Key, task)
|
||||
if nginx.IsModuleLoaded(nginx.ModuleStream) {
|
||||
selfCheckTasks = append(selfCheckTasks, &Task{
|
||||
Key: "Directory-Streams",
|
||||
Name: translation.C("Streams directory exists"),
|
||||
Description: translation.C("Check if the " +
|
||||
"streams-available and streams-enabled directories are " +
|
||||
"under the nginx configuration directory"),
|
||||
CheckFunc: CheckStreamDirectory,
|
||||
FixFunc: FixStreamDirectory,
|
||||
}, &Task{
|
||||
Key: "NginxConf-Streams-Enabled",
|
||||
Name: translation.C("Nginx.conf includes streams-enabled directory"),
|
||||
Description: translation.C("Check if the nginx.conf includes the " +
|
||||
"streams-enabled directory"),
|
||||
CheckFunc: CheckNginxConfIncludeStreams,
|
||||
FixFunc: FixNginxConfIncludeStreams,
|
||||
})
|
||||
}
|
||||
if helper.InNginxUIOfficialDocker() {
|
||||
selfCheckTasks = append(selfCheckTasks, &Task{
|
||||
|
@ -124,4 +123,8 @@ func init() {
|
|||
CheckFunc: CheckDockerSocket,
|
||||
})
|
||||
}
|
||||
|
||||
for _, task := range selfCheckTasks {
|
||||
selfCheckTaskMap.Set(task.Key, task)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue