From 6135e55f9256480137d13d748d9db8997ace206c Mon Sep 17 00:00:00 2001 From: Maxim Slipenko Date: Sun, 27 Apr 2025 18:28:20 +0300 Subject: [PATCH] fix: correct forward stdout / stderr from script executor --- install.go | 2 +- internal/translations/default.pot | 6 +++++- internal/translations/po/ru/default.po | 17 +++++++++-------- pkg/build/safe_script_executor.go | 1 + pkg/build/script_executor.go | 4 ++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/install.go b/install.go index fe3935c..792e1fe 100644 --- a/install.go +++ b/install.go @@ -115,7 +115,7 @@ func InstallCmd() *cli.Command { args.Slice(), ) if err != nil { - return cliutils.FormatCliExit(gotext.Get("Error parsing os release"), err) + return cliutils.FormatCliExit(gotext.Get("Error when installing the package"), err) } return nil diff --git a/internal/translations/default.pot b/internal/translations/default.pot index e9ea863..a4ff189 100644 --- a/internal/translations/default.pot +++ b/internal/translations/default.pot @@ -159,7 +159,7 @@ msgid "Command install expected at least 1 argument, got %d" msgstr "" #: install.go:118 -msgid "Error parsing os release" +msgid "Error when installing the package" msgstr "" #: install.go:163 @@ -190,6 +190,10 @@ msgstr "" msgid "Error pulling repositories" msgstr "" +#: internal/cliutils/app_builder/builder.go:152 +msgid "Error parsing os release" +msgstr "" + #: internal/cliutils/app_builder/builder.go:165 msgid "Unable to detect a supported package manager on the system" msgstr "" diff --git a/internal/translations/po/ru/default.po b/internal/translations/po/ru/default.po index 452cc8e..380164c 100644 --- a/internal/translations/po/ru/default.po +++ b/internal/translations/po/ru/default.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: unnamed project\n" -"PO-Revision-Date: 2025-04-18 07:38+0300\n" +"PO-Revision-Date: 2025-04-27 18:27+0300\n" "Last-Translator: Maxim Slipenko \n" "Language-Team: Russian\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Gtranslator 48.0\n" #: build.go:42 @@ -166,8 +166,8 @@ msgid "Command install expected at least 1 argument, got %d" msgstr "Для команды install ожидался хотя бы 1 аргумент, получено %d" #: install.go:118 -msgid "Error parsing os release" -msgstr "Ошибка при разборе файла выпуска операционной системы" +msgid "Error when installing the package" +msgstr "Ошибка при установке пакета" #: install.go:163 msgid "Remove an installed package" @@ -197,6 +197,10 @@ msgstr "Ошибка инициализации базы данных" msgid "Error pulling repositories" msgstr "Ошибка при извлечении репозиториев" +#: internal/cliutils/app_builder/builder.go:152 +msgid "Error parsing os release" +msgstr "Ошибка при разборе файла выпуска операционной системы" + #: internal/cliutils/app_builder/builder.go:165 msgid "Unable to detect a supported package manager on the system" msgstr "Не удалось обнаружить поддерживаемый менеджер пакетов в системе" @@ -576,9 +580,6 @@ msgstr "Здесь нечего делать." #~ msgid "Error installing native packages" #~ msgstr "Ошибка при установке нативных пакетов" -#~ msgid "Error installing package" -#~ msgstr "Ошибка при установке пакета" - #~ msgid "Error opening config file, using defaults" #~ msgstr "" #~ "Ошибка при открытии конфигурационного файла, используются значения по " diff --git a/pkg/build/safe_script_executor.go b/pkg/build/safe_script_executor.go index 49d4281..e3c7186 100644 --- a/pkg/build/safe_script_executor.go +++ b/pkg/build/safe_script_executor.go @@ -237,6 +237,7 @@ func GetSafeScriptExecutor() (ScriptExecutor, func(), error) { UnixSocketConfig: &plugin.UnixSocketConfig{ Group: "alr", }, + SyncStderr: os.Stderr, }) rpcClient, err := client.Client() if err != nil { diff --git a/pkg/build/script_executor.go b/pkg/build/script_executor.go index bc24e2f..7797b9f 100644 --- a/pkg/build/script_executor.go +++ b/pkg/build/script_executor.go @@ -73,7 +73,7 @@ func (e *LocalScriptExecutor) ExecuteFirstPass(ctx context.Context, input *Build runner, err := interp.New( interp.Env(expand.ListEnviron(env...)), // Устанавливаем окружение - interp.StdIO(os.Stdin, os.Stdout, os.Stderr), // Устанавливаем стандартный ввод-вывод + interp.StdIO(os.Stdin, os.Stderr, os.Stderr), // Устанавливаем стандартный ввод-вывод interp.ExecHandler(helpers.Restricted.ExecHandler(handlers.NopExec)), // Ограничиваем выполнение interp.ReadDirHandler2(handlers.RestrictedReadDir(scriptDir)), // Ограничиваем чтение директорий interp.StatHandler(handlers.RestrictedStat(scriptDir)), // Ограничиваем доступ к статистике файлов @@ -193,7 +193,7 @@ func (e *LocalScriptExecutor) ExecuteSecondPass( fakeroot := handlers.FakerootExecHandler(2 * time.Second) runner, err := interp.New( interp.Env(expand.ListEnviron(env...)), // Устанавливаем окружение - interp.StdIO(os.Stdin, os.Stdout, os.Stderr), // Устанавливаем стандартный ввод-вывод + interp.StdIO(os.Stdin, os.Stderr, os.Stderr), // Устанавливаем стандартный ввод-вывод interp.ExecHandlers(func(next interp.ExecHandlerFunc) interp.ExecHandlerFunc { return helpers.Helpers.ExecHandler(fakeroot) }), // Обрабатываем выполнение через fakeroot