package config

import (
	"fmt"
	"os"
	"regexp"
)

// SedReplace 替换文件内容，文件来自外部文件配置config传入
//
// sed 's/port: [0-9]\+ # trace port/port: 6964 # trace port/' /usr/local/etc/omc/omc.yaml
func SedReplace(pattern, replacement string) error {
	// 外部文件配置
	externalConfig := conf.GetString("config")
	if externalConfig == "" {
		return fmt.Errorf("config file path not found")
	}
	// 读取文件内容
	data, err := os.ReadFile(externalConfig)
	if err != nil {
		return err
	}

	// 定义正则表达式
	re := regexp.MustCompile(pattern)
	// 使用正则替换，将匹配到的部分替换为新的内容
	replacedData := re.ReplaceAll(data, []byte(replacement))
	// 写回文件
	return os.WriteFile(externalConfig, replacedData, 0644)
}
