12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package config
- import (
- "bufio"
- "bytes"
- "fmt"
- "strings"
- )
- func SetXginiBuffer(configBuffer *bytes.Buffer, xginiMap map[string]string) {
- tmpBuffer := new(bytes.Buffer)
- writer := bufio.NewWriter(tmpBuffer)
- scanner := bufio.NewScanner(configBuffer)
- for scanner.Scan() {
- line := scanner.Text()
- for k, v := range xginiMap {
- if strings.Contains(line, k) {
- parts := strings.SplitN(line, "=", 2)
- if len(parts) == 2 {
- newLine := strings.TrimSpace(parts[0]) + "= " + v + ";"
- line = fmt.Sprint(" " + newLine)
- break // 停止继续处理该行
- }
- }
- }
- _, err := writer.WriteString(line + "\n")
- if err != nil {
- fmt.Println(err)
- return
- }
- }
- err := writer.Flush()
- if err != nil {
- fmt.Println(err)
- return
- }
- // 使用 tmpBuffer 中的内容更新 configBuffer
- configBuffer.Reset()
- _, err = configBuffer.ReadFrom(tmpBuffer)
- if err != nil {
- fmt.Println(err)
- return
- }
- //fmt.Println("配置文件已成功更新。")
- }
|