fix: skip --assume-installed packages

This commit is contained in:
Jonas Bögle authored and J Guerreiro committed 2021-08-07 19:17:58 +02:00
1 parent 1c96fd2d9d
commit 7dda0fa2f8
2 files changed
+17 -5

No files matched your search

+2 -1
View File
@@ -69,6 +69,7 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
var srcinfos map[string]*gosrc.Srcinfo
noDeps := cmdArgs.ExistsDouble("d", "nodeps")
noCheck := strings.Contains(config.MFlags, "--nocheck")
assumeInstalled := cmdArgs.GetArgs("assume-installed")
sysupgradeArg := cmdArgs.ExistsArg("u", "sysupgrade")
refreshArg := cmdArgs.ExistsArg("y", "refresh")
warnings := query.NewWarnings()
@@ -142,7 +143,7 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
dp, err := dep.GetPool(requestTargets,
warnings, dbExecutor, config.Runtime.AURClient, config.Runtime.Mode,
ignoreProviders, settings.NoConfirm, config.Provides, config.ReBuild, config.RequestSplitN, noDeps, noCheck)
ignoreProviders, settings.NoConfirm, config.Provides, config.ReBuild, config.RequestSplitN, noDeps, noCheck, assumeInstalled)
if err != nil {
return err
}
+15 -4
View File
@@ -83,7 +83,7 @@ func makePool(dbExecutor db.Executor, aurClient *aur.Client) *Pool {
// Includes db/ prefixes and group installs
func (dp *Pool) ResolveTargets(pkgs []string,
mode settings.TargetMode,
ignoreProviders, noConfirm, provides bool, rebuild string, splitN int, noDeps, noCheckDeps bool) error {
ignoreProviders, noConfirm, provides bool, rebuild string, splitN int, noDeps, noCheckDeps bool, assumeInstalled []string) error {
// RPC requests are slow
// Combine as many AUR package requests as possible into a single RPC call
aurTargets := make(stringset.StringSet)
@@ -98,7 +98,7 @@ func (dp *Pool) ResolveTargets(pkgs []string,
// still get skipped even if it's from a different database to
// the one specified
// this is how pacman behaves
if dp.hasPackage(target.DepString()) {
if dp.hasPackage(target.DepString()) || isInAssumeInstalled(target.DepString(), assumeInstalled) {
continue
}
@@ -376,11 +376,11 @@ func GetPool(pkgs []string,
aurClient *aur.Client,
mode settings.TargetMode,
ignoreProviders, noConfirm, provides bool,
rebuild string, splitN int, noDeps bool, noCheckDeps bool) (*Pool, error) {
rebuild string, splitN int, noDeps bool, noCheckDeps bool, assumeInstalled []string) (*Pool, error) {
dp := makePool(dbExecutor, aurClient)
dp.Warnings = warnings
err := dp.ResolveTargets(pkgs, mode, ignoreProviders, noConfirm, provides, rebuild, splitN, noDeps, noCheckDeps)
err := dp.ResolveTargets(pkgs, mode, ignoreProviders, noConfirm, provides, rebuild, splitN, noDeps, noCheckDeps, assumeInstalled)
return dp, err
}
@@ -500,6 +500,17 @@ func (dp *Pool) hasPackage(name string) bool {
return false
}
func isInAssumeInstalled(name string, assumeInstalled []string) bool {
for _, pkgAndVersion := range assumeInstalled {
parts := strings.SplitN(pkgAndVersion, "=", 2)
if parts[0] == name {
return true
}
}
return false
}
func providerMenu(dep string, providers providers, noConfirm bool) *query.Pkg {
size := providers.Len()