Работа над выполнение действий секции, добавление комментариев

This commit is contained in:
XeRo 2026-01-22 17:54:42 +05:00
parent dc263b76bf
commit 91b1eea1d4
7 changed files with 300 additions and 41 deletions

View file

@ -437,26 +437,30 @@ func GetSystemUsers() []string {
return users
}
// ExecuteAction выполняет указанное действие с использованием шаблонов из expr и картой параметров
func ExecuteAction(action *types.SectionAction, application *types.PackageApplication) error {
//Карта параметров
vars := ParamsForCondition(application)
switch action.Type {
case "command":
//Формируем строку команды по шаблону с подставленными значениями и передаем её для выполнения
cmdStr, cmdErr := utils.RenderTemplate(action.Command, vars)
if cmdErr != nil {
return fmt.Errorf("ошибка создания шаблона команды: %v", cmdErr)
return fmt.Errorf("не удалось создать шаблон команды: %v", cmdErr)
}
return utils.RunCommand(cmdStr, action.RunAs)
case "file_template":
//Формируем 2 строки пути, с подставленными значениями и передаем её для выполнения
source, sourceErr := utils.RenderTemplate(action.FileSource, vars)
if sourceErr != nil {
return fmt.Errorf("ошибка создания шаблона файла источника: %v", sourceErr)
return fmt.Errorf("не удалось создать шаблон файла источника: %v", sourceErr)
}
target, targetErr := utils.RenderTemplate(action.FileTarget, vars)
if targetErr != nil {
return fmt.Errorf("ошибка создания шаблона файла цели: %v", targetErr)
return fmt.Errorf("не удалось создать шаблон файла цели: %v", targetErr)
}
return utils.RenderFileTemplate(source, target, vars)
default:
return fmt.Errorf("неизвестный тип действия")
return fmt.Errorf("действие для выполнения '%s' не опознано", action.Type)
}
}