more optimizations
Build / Build (push) Successful in 32s

This commit is contained in:
wt committed 2025-07-07 22:40:06 +07:00
1 parent 952587df4f
commit efcb19aa2f
19 files changed
+276 -189

No files matched your search

+12 -19
View File
@@ -4,28 +4,21 @@ import "strings"
func DecodeHosts(input string) map[string]any {
result := make(map[string]any)
pairs := strings.SplitSeq(input, "\n")
lines := strings.Split(input, "\n")
for pair := range pairs {
if pair == "" {
for _, line := range lines {
fields := strings.Fields(line)
if len(fields) == 0 {
continue
}
kv := strings.Split(pair, " ")
if len(kv) == 2 {
key := strings.TrimSpace(kv[0])
value := strings.TrimSpace(kv[1])
if key != "" {
result[key] = value
}
continue
}
if len(kv) != 0 {
key := strings.TrimSpace(kv[0])
var value []string
for i := 1; i < len(kv); i++ {
value = append(value, kv[i])
}
result[key] = value
key := fields[0]
if len(fields) == 1 {
result[key] = []string{}
} else if len(fields) == 2 {
result[key] = fields[1]
} else {
result[key] = fields[1:]
}
}
return result
+8 -12
View File
@@ -4,19 +4,15 @@ import "strings"
func DecodeResolvs(input string) []string {
var result []string
pairs := strings.SplitSeq(input, "\n")
lines := strings.Split(input, "\n")
for pair := range pairs {
if pair == "" {
continue
}
kv := strings.SplitN(pair, " ", 2)
if len(kv) != 2 {
continue
}
value := strings.TrimSpace(kv[1])
if value != "" {
result = append(result, value)
for _, line := range lines {
trimmedLine := strings.TrimSpace(line)
if strings.HasPrefix(trimmedLine, "nameserver ") {
value := strings.TrimPrefix(trimmedLine, "nameserver ")
if value != "" {
result = append(result, value)
}
}
}
return result
+8 -6
View File
@@ -4,20 +4,22 @@ import "strings"
func DecodeSettings(input string, pairDelim string, kvDelim string) map[string]string {
result := make(map[string]string)
pairs := strings.SplitSeq(input, pairDelim)
pairs := strings.Split(input, pairDelim)
for pair := range pairs {
if pair == "" {
for _, pair := range pairs {
trimmedPair := strings.TrimSpace(pair)
if trimmedPair == "" {
continue
}
kv := strings.SplitN(pair, kvDelim, 2)
kv := strings.SplitN(trimmedPair, kvDelim, 2)
if len(kv) != 2 {
continue
}
key := strings.TrimSpace(kv[0])
value := strings.TrimSpace(kv[1])
if key != "" {
result[key] = value
result[key] = strings.TrimSpace(kv[1])
}
}
return result
+18
View File
@@ -0,0 +1,18 @@
package utils
import (
"encoding/json"
"net/http"
)
// Helper to write JSON responses
func RespondWithJSON(w http.ResponseWriter, data any, statusCode int) {
jsonData, err := json.Marshal(data)
if err != nil {
http.Error(w, "failed to marshal JSON", http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(statusCode)
w.Write(jsonData)
}
+13 -4
View File
@@ -1,17 +1,26 @@
package utils
import (
"fmt"
"os"
"os/exec"
)
func RestartDnsmasq() {
func RestartDnsmasq() error {
var cmd *exec.Cmd
switch os.Getenv("SYSTEM_INITIALIZATION") {
case "rc":
exec.Command("rc", "restart", "dnsmasq").Run()
cmd = exec.Command("rc", "restart", "dnsmasq")
case "openrc":
exec.Command("rc-service", "dnsmasq", "restart").Run()
cmd = exec.Command("rc-service", "dnsmasq", "restart")
case "systemd":
exec.Command("systemctl", "restart", "dnsmasq").Run()
cmd = exec.Command("systemctl", "restart", "dnsmasq")
default:
return fmt.Errorf("unsupported system initialization: %s", os.Getenv("SYSTEM_INITIALIZATION"))
}
if err := cmd.Run(); err != nil {
return fmt.Errorf("failed to restart dnsmasq: %w", err)
}
return nil
}