diff --git a/hello b/hello index 212ca99..0606034 100755 Binary files a/hello and b/hello differ diff --git a/main.go b/main.go index 1185c3e..9ca3098 100644 --- a/main.go +++ b/main.go @@ -231,7 +231,7 @@ func (m *Menu) getVars(item MenuItem, interactive bool) map[string]string { func (m *Menu) runCommands(item MenuItem, vars map[string]string) bool { for _, cmd := range item.Commands { // Здесь можно вызвать реальное выполнение, используя os/exec - re := regexp.MustCompile(`%\(([a-zA-Z0-9]*)\)s`) + re := regexp.MustCompile(`%\(([a-zA-Z0-9\-]*)\)s`) command := re.ReplaceAllStringFunc(cmd, func(match string) string { // Извлекаем ключ внутри %( и )s key := re.FindStringSubmatch(match)[1] @@ -255,8 +255,7 @@ func (m *Menu) runCommands(item MenuItem, vars map[string]string) bool { parts = parts[1:] // Убираем первую часть } - // Теперь `parts` содержит только саму команду и её аргументы - cmd := exec.Command(parts[0], parts[1:]...) + cmd := exec.Command("sh", "-c", command) // Добавляем переменные окружения к текущим cmd.Env = append(os.Environ(), envs...)