Skip to content

Commit

Permalink
fix(config): package alpmHandle into runtimeSettings
Browse files Browse the repository at this point in the history
  • Loading branch information
Jguer committed Jul 5, 2020
1 parent 968b61a commit 36730a4
Show file tree
Hide file tree
Showing 14 changed files with 123 additions and 112 deletions.
4 changes: 2 additions & 2 deletions callbacks.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func questionCallback(question alpm.QuestionAny) {

size := 0

_ = qp.Providers(alpmHandle).ForEach(func(pkg alpm.Package) error {
_ = qp.Providers(config.Runtime.AlpmHandle).ForEach(func(pkg alpm.Package) error {
size++
return nil
})
Expand All @@ -38,7 +38,7 @@ func questionCallback(question alpm.QuestionAny) {
size = 1
var db string

_ = qp.Providers(alpmHandle).ForEach(func(pkg alpm.Package) error {
_ = qp.Providers(config.Runtime.AlpmHandle).ForEach(func(pkg alpm.Package) error {
thisDB := pkg.DB().Name()

if db != thisDB {
Expand Down
12 changes: 7 additions & 5 deletions clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (

"github.com/leonelquinteros/gotext"

"github.com/Jguer/go-alpm"

"github.com/Jguer/yay/v10/pkg/query"
"github.com/Jguer/yay/v10/pkg/settings"
"github.com/Jguer/yay/v10/pkg/stringset"
Expand Down Expand Up @@ -36,8 +38,8 @@ func removeVCSPackage(pkgs []string) {
}

// CleanDependencies removes all dangling dependencies in system
func cleanDependencies(removeOptional bool) error {
hanging, err := hangingPackages(removeOptional)
func cleanDependencies(removeOptional bool, alpmHandle *alpm.Handle) error {
hanging, err := hangingPackages(removeOptional, alpmHandle)
if err != nil {
return err
}
Expand All @@ -62,7 +64,7 @@ func cleanRemove(pkgNames []string) error {
return show(passToPacman(arguments))
}

func syncClean(parser *settings.Arguments) error {
func syncClean(parser *settings.Arguments, alpmHandle *alpm.Handle) error {
keepInstalled := false
keepCurrent := false

Expand Down Expand Up @@ -96,7 +98,7 @@ func syncClean(parser *settings.Arguments) error {
fmt.Println(gotext.Get("\nBuild directory:"), config.BuildDir)

if continueTask(question, true) {
if err := cleanAUR(keepInstalled, keepCurrent, removeAll); err != nil {
if err := cleanAUR(keepInstalled, keepCurrent, removeAll, alpmHandle); err != nil {
return err
}
}
Expand All @@ -112,7 +114,7 @@ func syncClean(parser *settings.Arguments) error {
return nil
}

func cleanAUR(keepInstalled, keepCurrent, removeAll bool) error {
func cleanAUR(keepInstalled, keepCurrent, removeAll bool, alpmHandle *alpm.Handle) error {
fmt.Println(gotext.Get("removing AUR packages from cache..."))

installedBases := make(stringset.StringSet)
Expand Down
72 changes: 36 additions & 36 deletions cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ getpkgbuild specific options:
-f --force Force download for existing ABS packages`)
}

func handleCmd() error {
func handleCmd(alpmHandle *alpm.Handle) error {
if cmdArgs.ExistsArg("h", "help") {
return handleHelp()
}
Expand All @@ -157,29 +157,29 @@ func handleCmd() error {
case "F", "files":
return show(passToPacman(cmdArgs))
case "Q", "query":
return handleQuery()
return handleQuery(alpmHandle)
case "R", "remove":
return handleRemove()
case "S", "sync":
return handleSync()
return handleSync(alpmHandle)
case "T", "deptest":
return show(passToPacman(cmdArgs))
case "U", "upgrade":
return show(passToPacman(cmdArgs))
case "G", "getpkgbuild":
return handleGetpkgbuild()
return handleGetpkgbuild(alpmHandle)
case "P", "show":
return handlePrint()
return handlePrint(alpmHandle)
case "Y", "--yay":
return handleYay()
return handleYay(alpmHandle)
}

return fmt.Errorf(gotext.Get("unhandled operation"))
}

func handleQuery() error {
func handleQuery(alpmHandle *alpm.Handle) error {
if cmdArgs.ExistsArg("u", "upgrades") {
return printUpdateList(cmdArgs)
return printUpdateList(cmdArgs, alpmHandle)
}
return show(passToPacman(cmdArgs))
}
Expand All @@ -196,7 +196,7 @@ func handleVersion() {
fmt.Printf("yay v%s - libalpm v%s\n", yayVersion, alpm.Version())
}

func handlePrint() (err error) {
func handlePrint(alpmHandle *alpm.Handle) (err error) {
switch {
case cmdArgs.ExistsArg("d", "defaultconfig"):
tmpConfig := settings.MakeConfig()
Expand All @@ -205,9 +205,9 @@ func handlePrint() (err error) {
case cmdArgs.ExistsArg("g", "currentconfig"):
fmt.Printf("%v", config)
case cmdArgs.ExistsArg("n", "numberupgrades"):
err = printNumberOfUpdates()
err = printNumberOfUpdates(alpmHandle)
case cmdArgs.ExistsArg("u", "upgrades"):
err = printUpdateList(cmdArgs)
err = printUpdateList(cmdArgs, alpmHandle)
case cmdArgs.ExistsArg("w", "news"):
double := cmdArgs.ExistsDouble("w", "news")
quiet := cmdArgs.ExistsArg("q", "quiet")
Expand All @@ -217,39 +217,39 @@ func handlePrint() (err error) {
case cmdArgs.ExistsArg("c", "complete"):
err = completion.Show(alpmHandle, config.AURURL, config.Runtime.CompletionPath, config.CompletionInterval, false)
case cmdArgs.ExistsArg("s", "stats"):
err = localStatistics()
err = localStatistics(alpmHandle)
default:
err = nil
}
return err
}

func handleYay() error {
func handleYay(alpmHandle *alpm.Handle) error {
if cmdArgs.ExistsArg("gendb") {
return createDevelDB(config.Runtime.VCSPath)
return createDevelDB(config.Runtime.VCSPath, alpmHandle)
}
if cmdArgs.ExistsDouble("c") {
return cleanDependencies(true)
return cleanDependencies(true, alpmHandle)
}
if cmdArgs.ExistsArg("c", "clean") {
return cleanDependencies(false)
return cleanDependencies(false, alpmHandle)
}
if len(cmdArgs.Targets) > 0 {
return handleYogurt()
return handleYogurt(alpmHandle)
}
return nil
}

func handleGetpkgbuild() error {
return getPkgbuilds(cmdArgs.Targets)
func handleGetpkgbuild(alpmHandle *alpm.Handle) error {
return getPkgbuilds(cmdArgs.Targets, alpmHandle)
}

func handleYogurt() error {
func handleYogurt(alpmHandle *alpm.Handle) error {
config.SearchMode = numberMenu
return displayNumberMenu(cmdArgs.Targets)
return displayNumberMenu(cmdArgs.Targets, alpmHandle)
}

func handleSync() error {
func handleSync(alpmHandle *alpm.Handle) error {
targets := cmdArgs.Targets

if cmdArgs.ExistsArg("s", "search") {
Expand All @@ -258,28 +258,28 @@ func handleSync() error {
} else {
config.SearchMode = detailed
}
return syncSearch(targets)
return syncSearch(targets, alpmHandle)
}
if cmdArgs.ExistsArg("p", "print", "print-format") {
return show(passToPacman(cmdArgs))
}
if cmdArgs.ExistsArg("c", "clean") {
return syncClean(cmdArgs)
return syncClean(cmdArgs, alpmHandle)
}
if cmdArgs.ExistsArg("l", "list") {
return syncList(cmdArgs)
return syncList(cmdArgs, alpmHandle)
}
if cmdArgs.ExistsArg("g", "groups") {
return show(passToPacman(cmdArgs))
}
if cmdArgs.ExistsArg("i", "info") {
return syncInfo(targets)
return syncInfo(targets, alpmHandle)
}
if cmdArgs.ExistsArg("u", "sysupgrade") {
return install(cmdArgs)
return install(cmdArgs, alpmHandle)
}
if len(cmdArgs.Targets) > 0 {
return install(cmdArgs)
return install(cmdArgs, alpmHandle)
}
if cmdArgs.ExistsArg("y", "refresh") {
return show(passToPacman(cmdArgs))
Expand All @@ -297,7 +297,7 @@ func handleRemove() error {
}

// NumberMenu presents a CLI for selecting packages to install.
func displayNumberMenu(pkgS []string) error {
func displayNumberMenu(pkgS []string, alpmHandle *alpm.Handle) error {
var (
aurErr, repoErr error
aq aurQuery
Expand All @@ -312,7 +312,7 @@ func displayNumberMenu(pkgS []string) error {
lenaq = len(aq)
}
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
pq, repoErr = queryRepo(pkgS)
pq, repoErr = queryRepo(pkgS, alpmHandle)
lenpq = len(pq)
if repoErr != nil {
return repoErr
Expand All @@ -326,17 +326,17 @@ func displayNumberMenu(pkgS []string) error {
switch config.SortMode {
case settings.TopDown:
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
pq.printSearch()
pq.printSearch(alpmHandle)
}
if config.Runtime.Mode == settings.ModeAUR || config.Runtime.Mode == settings.ModeAny {
aq.printSearch(lenpq + 1)
aq.printSearch(lenpq+1, alpmHandle)
}
case settings.BottomUp:
if config.Runtime.Mode == settings.ModeAUR || config.Runtime.Mode == settings.ModeAny {
aq.printSearch(lenpq + 1)
aq.printSearch(lenpq+1, alpmHandle)
}
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
pq.printSearch()
pq.printSearch(alpmHandle)
}
default:
return fmt.Errorf(gotext.Get("invalid sort mode. Fix with yay -Y --bottomup --save"))
Expand Down Expand Up @@ -407,10 +407,10 @@ func displayNumberMenu(pkgS []string) error {
sudoLoopBackground()
}

return install(arguments)
return install(arguments, alpmHandle)
}

func syncList(parser *settings.Arguments) error {
func syncList(parser *settings.Arguments, alpmHandle *alpm.Handle) error {
aur := false

for i := len(parser.Targets) - 1; i >= 0; i-- {
Expand Down
4 changes: 2 additions & 2 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ var savedInfo vcsInfo
var config *settings.Configuration

// AlpmHandle is the alpm handle used by yay.
var alpmHandle *alpm.Handle
// var alpmHandle *alpm.Handle

var hideMenus = false

Expand Down Expand Up @@ -171,7 +171,7 @@ func toUsage(usages []string) alpm.Usage {
return ret
}

func configureAlpm(pacmanConf *pacmanconf.Config) error {
func configureAlpm(pacmanConf *pacmanconf.Config, alpmHandle *alpm.Handle) error {
// TODO: set SigLevel
// sigLevel := alpm.SigPackage | alpm.SigPackageOptional | alpm.SigDatabase | alpm.SigDatabaseOptional
// localFileSigLevel := alpm.SigUseDefault
Expand Down
10 changes: 5 additions & 5 deletions depPool.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ type depPool struct {
Warnings *aurWarnings
}

func makeDepPool() (*depPool, error) {
func makeDepPool(alpmHandle *alpm.Handle) (*depPool, error) {
localDB, err := alpmHandle.LocalDB()
if err != nil {
return nil, err
Expand All @@ -81,7 +81,7 @@ func makeDepPool() (*depPool, error) {
}

// Includes db/ prefixes and group installs
func (dp *depPool) ResolveTargets(pkgs []string) error {
func (dp *depPool) ResolveTargets(pkgs []string, alpmHandle *alpm.Handle) error {
// RPC requests are slow
// Combine as many AUR package requests as possible into a single RPC
// call
Expand Down Expand Up @@ -358,14 +358,14 @@ func (dp *depPool) ResolveRepoDependency(pkg *alpm.Package) {
})
}

func getDepPool(pkgs []string, warnings *aurWarnings) (*depPool, error) {
dp, err := makeDepPool()
func getDepPool(pkgs []string, warnings *aurWarnings, alpmHandle *alpm.Handle) (*depPool, error) {
dp, err := makeDepPool(alpmHandle)
if err != nil {
return nil, err
}

dp.Warnings = warnings
err = dp.ResolveTargets(pkgs)
err = dp.ResolveTargets(pkgs, alpmHandle)

return dp, err
}
Expand Down
8 changes: 4 additions & 4 deletions download.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,15 @@ func gitMerge(path, name string) error {
return nil
}

func getPkgbuilds(pkgs []string) error {
func getPkgbuilds(pkgs []string, alpmHandle *alpm.Handle) error {
missing := false
wd, err := os.Getwd()
if err != nil {
return err
}

pkgs = removeInvalidTargets(pkgs)
aur, repo, err := packageSlices(pkgs)
aur, repo, err := packageSlices(pkgs, alpmHandle)

if err != nil {
return err
Expand All @@ -163,7 +163,7 @@ func getPkgbuilds(pkgs []string) error {
}

if len(repo) > 0 {
missing, err = getPkgbuildsfromABS(repo, wd)
missing, err = getPkgbuildsfromABS(repo, wd, alpmHandle)
if err != nil {
return err
}
Expand Down Expand Up @@ -211,7 +211,7 @@ func getPkgbuilds(pkgs []string) error {
}

// GetPkgbuild downloads pkgbuild from the ABS.
func getPkgbuildsfromABS(pkgs []string, path string) (bool, error) {
func getPkgbuildsfromABS(pkgs []string, path string, alpmHandle *alpm.Handle) (bool, error) {
var wg sync.WaitGroup
var mux sync.Mutex
var errs multierror.MultiError
Expand Down
Loading

0 comments on commit 36730a4

Please sign in to comment.