| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | package configimport (	"os"	"github.com/0xJacky/Nginx-UI/internal/helper"	"github.com/0xJacky/Nginx-UI/internal/nginx"	"github.com/0xJacky/Nginx-UI/model"	"github.com/0xJacky/Nginx-UI/query"	"github.com/uozi-tech/cosy"	"gorm.io/gen/field")func Save(absPath string, content string, cfg *model.Config) (err error) {	q := query.Config	if cfg == nil {		cfg, err = q.Assign(field.Attrs(&model.Config{			Filepath: absPath,		})).Where(q.Filepath.Eq(absPath)).FirstOrCreate()		if err != nil {			return		}	}	if !helper.IsUnderDirectory(absPath, nginx.GetConfPath()) {		return ErrPathIsNotUnderTheNginxConfDir	}	origContent, err := os.ReadFile(absPath)	if err != nil {		return	}	if content == string(origContent) {		return	}	err = CheckAndCreateHistory(absPath, content)	if err != nil {		return	}	err = os.WriteFile(absPath, []byte(content), 0644)	if err != nil {		return	}	output, err := nginx.Reload()	if err != nil {		return	} 	if nginx.GetLogLevel(output) >= nginx.Warn {		return cosy.WrapErrorWithParams(ErrNginxReloadFailed, output)	}	err = SyncToRemoteServer(cfg)	if err != nil {		return	}	return}
 |