chore(install): reduce cognitive load

This commit is contained in:
jguer 2021-03-14 23:39:55 +01:00 committed by J Guerreiro
parent 7a280e0199
commit 5da8161328
2 changed files with 24 additions and 19 deletions

View file

@ -66,18 +66,20 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
var do *dep.Order
var srcinfos map[string]*gosrc.Srcinfo
noDeps := cmdArgs.ExistsDouble("d", "nodeps")
sysupgradeArg := cmdArgs.ExistsArg("u", "sysupgrade")
refreshArg := cmdArgs.ExistsArg("y", "refresh")
warnings := query.NewWarnings()
if config.Runtime.Mode == settings.ModeAny || config.Runtime.Mode == settings.ModeRepo {
if config.CombinedUpgrade {
if cmdArgs.ExistsArg("y", "refresh") {
if refreshArg {
err = earlyRefresh(cmdArgs)
if err != nil {
return fmt.Errorf(gotext.Get("error refreshing databases"))
}
}
} else if cmdArgs.ExistsArg("y", "refresh") || cmdArgs.ExistsArg("u", "sysupgrade") || len(cmdArgs.Targets) > 0 {
} else if refreshArg || sysupgradeArg || len(cmdArgs.Targets) > 0 {
err = earlyPacmanCall(cmdArgs, dbExecutor)
if err != nil {
return err
@ -114,7 +116,7 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
}
// if we are doing -u also request all packages needing update
if cmdArgs.ExistsArg("u", "sysupgrade") {
if sysupgradeArg {
ignore, targets, errUp := sysupgradeTargets(dbExecutor, cmdArgs.ExistsDouble("u", "sysupgrade"))
if errUp != nil {
return errUp
@ -139,16 +141,14 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
return err
}
if !cmdArgs.ExistsDouble("d", "nodeps") {
err = dp.CheckMissing()
if err != nil {
return err
}
err = dp.CheckMissing(noDeps)
if err != nil {
return err
}
if len(dp.Aur) == 0 {
if !config.CombinedUpgrade {
if cmdArgs.ExistsArg("u", "sysupgrade") {
if sysupgradeArg {
fmt.Println(gotext.Get(" there is nothing to do"))
}
return nil
@ -166,12 +166,9 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider
return fmt.Errorf(gotext.Get("refusing to install AUR packages as root, aborting"))
}
var conflicts stringset.MapStringSet
if !cmdArgs.ExistsDouble("d", "nodeps") {
conflicts, err = dp.CheckConflicts(config.UseAsk, settings.NoConfirm)
if err != nil {
return err
}
conflicts, err := dp.CheckConflicts(config.UseAsk, settings.NoConfirm, noDeps)
if err != nil {
return err
}
do = dep.GetOrder(dp)

View file

@ -119,10 +119,14 @@ func (dp *Pool) checkReverseConflicts(conflicts stringset.MapStringSet) {
}
}
func (dp *Pool) CheckConflicts(useAsk, noConfirm bool) (stringset.MapStringSet, error) {
func (dp *Pool) CheckConflicts(useAsk, noConfirm, noDeps bool) (stringset.MapStringSet, error) {
conflicts := make(stringset.MapStringSet)
if noDeps {
return conflicts, nil
}
var wg sync.WaitGroup
innerConflicts := make(stringset.MapStringSet)
conflicts := make(stringset.MapStringSet)
wg.Add(2)
text.OperationInfoln(gotext.Get("Checking for conflicts..."))
@ -268,7 +272,11 @@ func stringSliceEqual(a, b []string) bool {
return true
}
func (dp *Pool) CheckMissing() error {
func (dp *Pool) CheckMissing(noDeps bool) error {
if noDeps {
return nil
}
missing := &missing{
make(stringset.StringSet),
make(map[string][][]string),