feat: add ability to remove build_deps #125
| @@ -11,7 +11,7 @@ | |||||||
|     <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> |     <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> | ||||||
|         <text x="33.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> |         <text x="33.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> | ||||||
|         <text x="33.5" y="14">coverage</text> |         <text x="33.5" y="14">coverage</text> | ||||||
|         <text x="86" y="15" fill="#010101" fill-opacity=".3">19.9%</text> |         <text x="86" y="15" fill="#010101" fill-opacity=".3">19.8%</text> | ||||||
|         <text x="86" y="14">19.9%</text> |         <text x="86" y="14">19.8%</text> | ||||||
|     </g> |     </g> | ||||||
| </svg> | </svg> | ||||||
|   | |||||||
| Before Width: | Height: | Size: 926 B After Width: | Height: | Size: 926 B | 
| @@ -214,6 +214,8 @@ type CheckerExecutor interface { | |||||||
| type InstallerExecutor interface { | type InstallerExecutor interface { | ||||||
| 	InstallLocal(paths []string, opts *manager.Opts) error | 	InstallLocal(paths []string, opts *manager.Opts) error | ||||||
| 	Install(pkgs []string, opts *manager.Opts) error | 	Install(pkgs []string, opts *manager.Opts) error | ||||||
|  | 	Remove(pkgs []string, opts *manager.Opts) error | ||||||
|  |  | ||||||
| 	RemoveAlreadyInstalled(pkgs []string) ([]string, error) | 	RemoveAlreadyInstalled(pkgs []string) ([]string, error) | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -408,7 +410,7 @@ func (b *Builder) BuildPackage( | |||||||
| 	sources, checksums = removeDuplicatesSources(sources, checksums) | 	sources, checksums = removeDuplicatesSources(sources, checksums) | ||||||
|  |  | ||||||
| 	slog.Debug("installBuildDeps") | 	slog.Debug("installBuildDeps") | ||||||
| 	alrBuildDeps, err := b.installBuildDeps(ctx, input, buildDepends) | 	alrBuildDeps, installedBuildDeps, err := b.installBuildDeps(ctx, input, buildDepends) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| @@ -477,9 +479,39 @@ func (b *Builder) BuildPackage( | |||||||
|  |  | ||||||
| 	builtDeps = removeDuplicates(append(builtDeps, res...)) | 	builtDeps = removeDuplicates(append(builtDeps, res...)) | ||||||
|  |  | ||||||
|  | 	err = b.removeBuildDeps(ctx, input, installedBuildDeps) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	return builtDeps, nil | 	return builtDeps, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (b *Builder) removeBuildDeps(ctx context.Context, input interface { | ||||||
|  | 	BuildOptsProvider | ||||||
|  | }, deps []string, | ||||||
|  | ) error { | ||||||
|  | 	if len(deps) > 0 { | ||||||
|  | 		remove, err := cliutils.YesNoPrompt(ctx, gotext.Get("Would you like to remove the build dependencies?"), input.BuildOpts().Interactive, false) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if remove { | ||||||
|  | 			err = b.installerExecutor.Remove( | ||||||
|  | 				deps, | ||||||
|  | 				&manager.Opts{ | ||||||
|  | 					NoConfirm: !input.BuildOpts().Interactive, | ||||||
|  | 				}, | ||||||
|  | 			) | ||||||
|  | 			if err != nil { | ||||||
|  | 				return err | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| type InstallPkgsArgs struct { | type InstallPkgsArgs struct { | ||||||
| 	BuildArgs | 	BuildArgs | ||||||
| 	AlrPkgs    []alrsh.Package | 	AlrPkgs    []alrsh.Package | ||||||
| @@ -608,20 +640,22 @@ func (i *Builder) installBuildDeps( | |||||||
| 		PkgFormatProvider | 		PkgFormatProvider | ||||||
| 	}, | 	}, | ||||||
| 	pkgs []string, | 	pkgs []string, | ||||||
| ) ([]*BuiltDep, error) { | ) ([]*BuiltDep, []string, error) { | ||||||
| 	var builtDeps []*BuiltDep | 	var builtDeps []*BuiltDep | ||||||
|  | 	var deps []string | ||||||
|  | 	var err error | ||||||
| 	if len(pkgs) > 0 { | 	if len(pkgs) > 0 { | ||||||
| 		deps, err := i.installerExecutor.RemoveAlreadyInstalled(pkgs) | 		deps, err = i.installerExecutor.RemoveAlreadyInstalled(pkgs) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, nil, err | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		builtDeps, err = i.InstallPkgs(ctx, input, deps) // Устанавливаем выбранные пакеты | 		builtDeps, err = i.InstallPkgs(ctx, input, deps) // Устанавливаем выбранные пакеты | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, nil, err | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return builtDeps, nil | 	return builtDeps, deps, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func (i *Builder) installOptDeps( | func (i *Builder) installOptDeps( | ||||||
|   | |||||||
| @@ -36,6 +36,10 @@ func (i *Installer) Install(pkgs []string, opts *manager.Opts) error { | |||||||
| 	return i.mgr.Install(opts, pkgs...) | 	return i.mgr.Install(opts, pkgs...) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (i *Installer) Remove(pkgs []string, opts *manager.Opts) error { | ||||||
|  | 	return i.mgr.Remove(opts, pkgs...) | ||||||
|  | } | ||||||
|  |  | ||||||
| func (i *Installer) RemoveAlreadyInstalled(pkgs []string) ([]string, error) { | func (i *Installer) RemoveAlreadyInstalled(pkgs []string) ([]string, error) { | ||||||
| 	filteredPackages := []string{} | 	filteredPackages := []string{} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -70,6 +70,17 @@ func (s *InstallerRPCServer) Install(args *InstallArgs, reply *struct{}) error { | |||||||
| 	return s.Impl.Install(args.PackagesOrPaths, args.Opts) | 	return s.Impl.Install(args.PackagesOrPaths, args.Opts) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (r *InstallerRPC) Remove(pkgs []string, opts *manager.Opts) error { | ||||||
|  | 	return r.client.Call("Plugin.Remove", &InstallArgs{ | ||||||
|  | 		PackagesOrPaths: pkgs, | ||||||
|  | 		Opts:            opts, | ||||||
|  | 	}, nil) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *InstallerRPCServer) Remove(args *InstallArgs, reply *struct{}) error { | ||||||
|  | 	return s.Impl.Remove(args.PackagesOrPaths, args.Opts) | ||||||
|  | } | ||||||
|  |  | ||||||
| func (r *InstallerRPC) RemoveAlreadyInstalled(paths []string) ([]string, error) { | func (r *InstallerRPC) RemoveAlreadyInstalled(paths []string) ([]string, error) { | ||||||
| 	var val []string | 	var val []string | ||||||
| 	err := r.client.Call("Plugin.RemoveAlreadyInstalled", paths, &val) | 	err := r.client.Call("Plugin.RemoveAlreadyInstalled", paths, &val) | ||||||
|   | |||||||
| @@ -174,19 +174,23 @@ msgstr "" | |||||||
| msgid "Error removing packages" | msgid "Error removing packages" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: internal/build/build.go:376 | #: internal/build/build.go:378 | ||||||
| msgid "Building package" | msgid "Building package" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: internal/build/build.go:405 | #: internal/build/build.go:407 | ||||||
| msgid "The checksums array must be the same length as sources" | msgid "The checksums array must be the same length as sources" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: internal/build/build.go:447 | #: internal/build/build.go:449 | ||||||
| msgid "Downloading sources" | msgid "Downloading sources" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: internal/build/build.go:539 | #: internal/build/build.go:495 | ||||||
|  | msgid "Would you like to remove the build dependencies?" | ||||||
|  | msgstr "" | ||||||
|  |  | ||||||
|  | #: internal/build/build.go:571 | ||||||
| msgid "Installing dependencies" | msgid "Installing dependencies" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -181,19 +181,23 @@ msgstr "Для команды remove ожидался хотя бы 1 аргум | |||||||
| msgid "Error removing packages" | msgid "Error removing packages" | ||||||
| msgstr "Ошибка при удалении пакетов" | msgstr "Ошибка при удалении пакетов" | ||||||
|  |  | ||||||
| #: internal/build/build.go:376 | #: internal/build/build.go:378 | ||||||
| msgid "Building package" | msgid "Building package" | ||||||
| msgstr "Сборка пакета" | msgstr "Сборка пакета" | ||||||
|  |  | ||||||
| #: internal/build/build.go:405 | #: internal/build/build.go:407 | ||||||
| msgid "The checksums array must be the same length as sources" | msgid "The checksums array must be the same length as sources" | ||||||
| msgstr "Массив контрольных сумм должен быть той же длины, что и источники" | msgstr "Массив контрольных сумм должен быть той же длины, что и источники" | ||||||
|  |  | ||||||
| #: internal/build/build.go:447 | #: internal/build/build.go:449 | ||||||
| msgid "Downloading sources" | msgid "Downloading sources" | ||||||
| msgstr "Скачивание источников" | msgstr "Скачивание источников" | ||||||
|  |  | ||||||
| #: internal/build/build.go:539 | #: internal/build/build.go:495 | ||||||
|  | msgid "Would you like to remove the build dependencies?" | ||||||
|  | msgstr "Хотели бы вы удалить зависимости сборки?" | ||||||
|  |  | ||||||
|  | #: internal/build/build.go:571 | ||||||
| msgid "Installing dependencies" | msgid "Installing dependencies" | ||||||
| msgstr "Установка зависимостей" | msgstr "Установка зависимостей" | ||||||
|  |  | ||||||
| @@ -663,9 +667,6 @@ msgstr "Здесь нечего делать." | |||||||
| #~ msgid "Installing build dependencies" | #~ msgid "Installing build dependencies" | ||||||
| #~ msgstr "Установка зависимостей сборки" | #~ msgstr "Установка зависимостей сборки" | ||||||
|  |  | ||||||
| #~ msgid "Would you like to remove the build dependencies?" |  | ||||||
| #~ msgstr "Хотели бы вы удалить зависимости сборки?" |  | ||||||
|  |  | ||||||
| #~ msgid "Error installing native packages" | #~ msgid "Error installing native packages" | ||||||
| #~ msgstr "Ошибка при установке нативных пакетов" | #~ msgstr "Ошибка при установке нативных пакетов" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user