forked from Plemya-x/ALR
		
	Merge pull request 'fix: correct forward stdout / stderr from script executor' (#71) from Maks1mS/ALR:issue-70 into master
Reviewed-on: Plemya-x/ALR#71
This commit is contained in:
		| @@ -115,7 +115,7 @@ func InstallCmd() *cli.Command { | |||||||
| 				args.Slice(), | 				args.Slice(), | ||||||
| 			) | 			) | ||||||
| 			if err != nil { | 			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 | 			return nil | ||||||
|   | |||||||
| @@ -159,7 +159,7 @@ msgid "Command install expected at least 1 argument, got %d" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: install.go:118 | #: install.go:118 | ||||||
| msgid "Error parsing os release" | msgid "Error when installing the package" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: install.go:163 | #: install.go:163 | ||||||
| @@ -190,6 +190,10 @@ msgstr "" | |||||||
| msgid "Error pulling repositories" | msgid "Error pulling repositories" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|  | #: internal/cliutils/app_builder/builder.go:152 | ||||||
|  | msgid "Error parsing os release" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
| #: internal/cliutils/app_builder/builder.go:165 | #: internal/cliutils/app_builder/builder.go:165 | ||||||
| msgid "Unable to detect a supported package manager on the system" | msgid "Unable to detect a supported package manager on the system" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -5,15 +5,15 @@ | |||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: unnamed project\n" | "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 <maks1ms@alt-gnome.ru>\n" | "Last-Translator: Maxim Slipenko <maks1ms@alt-gnome.ru>\n" | ||||||
| "Language-Team: Russian\n" | "Language-Team: Russian\n" | ||||||
| "Language: ru\n" | "Language: ru\n" | ||||||
| "MIME-Version: 1.0\n" | "MIME-Version: 1.0\n" | ||||||
| "Content-Type: text/plain; charset=UTF-8\n" | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
| "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " | ||||||
| "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" | "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" | ||||||
| "X-Generator: Gtranslator 48.0\n" | "X-Generator: Gtranslator 48.0\n" | ||||||
|  |  | ||||||
| #: build.go:42 | #: build.go:42 | ||||||
| @@ -166,8 +166,8 @@ msgid "Command install expected at least 1 argument, got %d" | |||||||
| msgstr "Для команды install ожидался хотя бы 1 аргумент, получено %d" | msgstr "Для команды install ожидался хотя бы 1 аргумент, получено %d" | ||||||
|  |  | ||||||
| #: install.go:118 | #: install.go:118 | ||||||
| msgid "Error parsing os release" | msgid "Error when installing the package" | ||||||
| msgstr "Ошибка при разборе файла выпуска операционной системы" | msgstr "Ошибка при установке пакета" | ||||||
|  |  | ||||||
| #: install.go:163 | #: install.go:163 | ||||||
| msgid "Remove an installed package" | msgid "Remove an installed package" | ||||||
| @@ -197,6 +197,10 @@ msgstr "Ошибка инициализации базы данных" | |||||||
| msgid "Error pulling repositories" | msgid "Error pulling repositories" | ||||||
| msgstr "Ошибка при извлечении репозиториев" | msgstr "Ошибка при извлечении репозиториев" | ||||||
|  |  | ||||||
|  | #: internal/cliutils/app_builder/builder.go:152 | ||||||
|  | msgid "Error parsing os release" | ||||||
|  | msgstr "Ошибка при разборе файла выпуска операционной системы" | ||||||
|  |  | ||||||
| #: internal/cliutils/app_builder/builder.go:165 | #: internal/cliutils/app_builder/builder.go:165 | ||||||
| msgid "Unable to detect a supported package manager on the system" | msgid "Unable to detect a supported package manager on the system" | ||||||
| msgstr "Не удалось обнаружить поддерживаемый менеджер пакетов в системе" | msgstr "Не удалось обнаружить поддерживаемый менеджер пакетов в системе" | ||||||
| @@ -576,9 +580,6 @@ msgstr "Здесь нечего делать." | |||||||
| #~ msgid "Error installing native packages" | #~ msgid "Error installing native packages" | ||||||
| #~ msgstr "Ошибка при установке нативных пакетов" | #~ msgstr "Ошибка при установке нативных пакетов" | ||||||
|  |  | ||||||
| #~ msgid "Error installing package" |  | ||||||
| #~ msgstr "Ошибка при установке пакета" |  | ||||||
|  |  | ||||||
| #~ msgid "Error opening config file, using defaults" | #~ msgid "Error opening config file, using defaults" | ||||||
| #~ msgstr "" | #~ msgstr "" | ||||||
| #~ "Ошибка при открытии конфигурационного файла, используются значения по " | #~ "Ошибка при открытии конфигурационного файла, используются значения по " | ||||||
|   | |||||||
| @@ -237,6 +237,7 @@ func GetSafeScriptExecutor() (ScriptExecutor, func(), error) { | |||||||
| 		UnixSocketConfig: &plugin.UnixSocketConfig{ | 		UnixSocketConfig: &plugin.UnixSocketConfig{ | ||||||
| 			Group: "alr", | 			Group: "alr", | ||||||
| 		}, | 		}, | ||||||
|  | 		SyncStderr: os.Stderr, | ||||||
| 	}) | 	}) | ||||||
| 	rpcClient, err := client.Client() | 	rpcClient, err := client.Client() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
| @@ -73,7 +73,7 @@ func (e *LocalScriptExecutor) ExecuteFirstPass(ctx context.Context, input *Build | |||||||
|  |  | ||||||
| 	runner, err := interp.New( | 	runner, err := interp.New( | ||||||
| 		interp.Env(expand.ListEnviron(env...)),                               // Устанавливаем окружение | 		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.ExecHandler(helpers.Restricted.ExecHandler(handlers.NopExec)), // Ограничиваем выполнение | ||||||
| 		interp.ReadDirHandler2(handlers.RestrictedReadDir(scriptDir)),        // Ограничиваем чтение директорий | 		interp.ReadDirHandler2(handlers.RestrictedReadDir(scriptDir)),        // Ограничиваем чтение директорий | ||||||
| 		interp.StatHandler(handlers.RestrictedStat(scriptDir)),               // Ограничиваем доступ к статистике файлов | 		interp.StatHandler(handlers.RestrictedStat(scriptDir)),               // Ограничиваем доступ к статистике файлов | ||||||
| @@ -193,7 +193,7 @@ func (e *LocalScriptExecutor) ExecuteSecondPass( | |||||||
| 	fakeroot := handlers.FakerootExecHandler(2 * time.Second) | 	fakeroot := handlers.FakerootExecHandler(2 * time.Second) | ||||||
| 	runner, err := interp.New( | 	runner, err := interp.New( | ||||||
| 		interp.Env(expand.ListEnviron(env...)),       // Устанавливаем окружение | 		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 { | 		interp.ExecHandlers(func(next interp.ExecHandlerFunc) interp.ExecHandlerFunc { | ||||||
| 			return helpers.Helpers.ExecHandler(fakeroot) | 			return helpers.Helpers.ExecHandler(fakeroot) | ||||||
| 		}), // Обрабатываем выполнение через fakeroot | 		}), // Обрабатываем выполнение через fakeroot | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user