platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,47 @@
package dnscfg
import "strings"
type RunCommandFunc func(name string, args ...string) (stdout string, stderr string, exitCode int, err error)
type CmdResult struct {
OK bool
ExitCode int
Stdout string
Stderr string
Message string
}
func UnitState(run RunCommandFunc, unit string) string {
if run == nil {
return "unknown"
}
stdout, _, _, _ := run("systemctl", "is-active", strings.TrimSpace(unit))
st := strings.TrimSpace(stdout)
if st == "" {
return "unknown"
}
return st
}
func RunUnitAction(run RunCommandFunc, unit, action string) CmdResult {
if run == nil {
return CmdResult{
OK: false,
Message: "run command func is nil",
}
}
stdout, stderr, exitCode, err := run("systemctl", strings.TrimSpace(action), strings.TrimSpace(unit))
res := CmdResult{
OK: err == nil && exitCode == 0,
ExitCode: exitCode,
Stdout: stdout,
Stderr: stderr,
}
if err != nil {
res.Message = err.Error()
} else {
res.Message = strings.TrimSpace(unit) + " " + strings.TrimSpace(action) + " done"
}
return res
}