mirror of
https://github.com/Jguer/yay
synced 2024-10-05 23:59:13 +00:00
fix: skip --assume-installed packages
This commit is contained in:
parent
1c96fd2d9d
commit
7dda0fa2f8
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in a new issue