morganamilo 6 лет назад
Родитель
Сommit
5ce4a49687

+ 3 - 3
callbacks.go

@@ -37,10 +37,10 @@ func questionCallback(question alpm.QuestionAny) {
 	var db string
 
 	qp.Providers(alpmHandle).ForEach(func(pkg alpm.Package) error {
-		thisDb := pkg.DB().Name()
+		thisDB := pkg.DB().Name()
 
-		if db != thisDb {
-			db = thisDb
+		if db != thisDB {
+			db = thisDB
 			str += bold(cyan("\n:: ")) + bold("Repository "+db+"\n    ")
 		}
 		str += fmt.Sprintf("%d) %s ", size, pkg.Name())

+ 2 - 2
cmd.go

@@ -398,7 +398,7 @@ func syncList(parser *arguments) error {
 	}
 
 	if (mode == modeAny || mode == modeAUR) && (len(parser.targets) == 0 || aur) {
-		localDb, err := alpmHandle.LocalDb()
+		localDB, err := alpmHandle.LocalDB()
 		if err != nil {
 			return err
 		}
@@ -419,7 +419,7 @@ func syncList(parser *arguments) error {
 			} else {
 				fmt.Printf("%s %s %s", magenta("aur"), bold(name), bold(green("unknown-version")))
 
-				if _, err := localDb.PkgByName(name); err == nil {
+				if _, err := localDB.Pkg(name); err == nil {
 					fmt.Print(bold(blue(" [Installed]")))
 				}
 

+ 2 - 2
completions.go

@@ -32,12 +32,12 @@ func createAURList(out *os.File) (err error) {
 
 //CreatePackageList appends Repo packages to completion cache
 func createRepoList(out *os.File) (err error) {
-	dbList, err := alpmHandle.SyncDbs()
+	dbList, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return
 	}
 
-	_ = dbList.ForEach(func(db alpm.Db) error {
+	_ = dbList.ForEach(func(db alpm.DB) error {
 		_ = db.PkgCache().ForEach(func(pkg alpm.Package) error {
 			out.WriteString(pkg.Name())
 			out.WriteString("\t" + pkg.DB().Name() + "\n")

+ 6 - 6
config.go

@@ -361,7 +361,7 @@ func configureAlpm(conf *pacmanconf.Config) error {
 
 	for _, repo := range pacmanConf.Repos {
 		// TODO: set SigLevel
-		db, err := alpmHandle.RegisterSyncDb(repo.Name, 0)
+		db, err := alpmHandle.RegisterSyncDB(repo.Name, 0)
 		if err != nil {
 			return err
 		}
@@ -371,7 +371,7 @@ func configureAlpm(conf *pacmanconf.Config) error {
 
 	}
 
-	if err = alpmHandle.SetCacheDirs(pacmanConf.CacheDir...); err != nil {
+	if err = alpmHandle.SetCacheDirs(pacmanConf.CacheDir); err != nil {
 		return err
 	}
 
@@ -390,11 +390,11 @@ func configureAlpm(conf *pacmanconf.Config) error {
 		return err
 	}
 
-	if err = alpmHandle.SetIgnorePkgs(pacmanConf.IgnorePkg...); err != nil {
+	if err = alpmHandle.SetIgnorePkgs(pacmanConf.IgnorePkg); err != nil {
 		return err
 	}
 
-	if err = alpmHandle.SetIgnoreGroups(pacmanConf.IgnoreGroup...); err != nil {
+	if err = alpmHandle.SetIgnoreGroups(pacmanConf.IgnoreGroup); err != nil {
 		return err
 	}
 
@@ -402,11 +402,11 @@ func configureAlpm(conf *pacmanconf.Config) error {
 		return err
 	}
 
-	if err = alpmHandle.SetNoUpgrades(pacmanConf.NoUpgrade...); err != nil {
+	if err = alpmHandle.SetNoUpgrades(pacmanConf.NoUpgrade); err != nil {
 		return err
 	}
 
-	if alpmHandle.SetNoExtracts(pacmanConf.NoExtract...); err != nil {
+	if alpmHandle.SetNoExtracts(pacmanConf.NoExtract); err != nil {
 		return err
 	}
 

+ 1 - 1
dep.go

@@ -140,7 +140,7 @@ func satisfiesRepo(dep string, pkg *alpm.Package) bool {
 }
 
 //split apart db/package to db and package
-func splitDbFromName(pkg string) (string, string) {
+func splitDBFromName(pkg string) (string, string) {
 	split := strings.SplitN(pkg, "/", 2)
 
 	if len(split) == 2 {

+ 4 - 4
depCheck.go

@@ -32,7 +32,7 @@ func (dp *depPool) checkInnerConflict(name string, conflict string, conflicts ma
 }
 
 func (dp *depPool) checkForwardConflict(name string, conflict string, conflicts mapStringSet) {
-	dp.LocalDb.PkgCache().ForEach(func(pkg alpm.Package) error {
+	dp.LocalDB.PkgCache().ForEach(func(pkg alpm.Package) error {
 		if pkg.Name() == name || dp.hasPackage(pkg.Name()) {
 			return nil
 		}
@@ -110,7 +110,7 @@ func (dp *depPool) checkForwardConflicts(conflicts mapStringSet) {
 }
 
 func (dp *depPool) checkReverseConflicts(conflicts mapStringSet) {
-	dp.LocalDb.PkgCache().ForEach(func(pkg alpm.Package) error {
+	dp.LocalDB.PkgCache().ForEach(func(pkg alpm.Package) error {
 		if dp.hasPackage(pkg.Name()) {
 			return nil
 		}
@@ -227,7 +227,7 @@ func (dp *depPool) _checkMissing(dep string, stack []string, missing *missing) {
 		missing.Good.set(dep)
 		for _, deps := range [3][]string{aurPkg.Depends, aurPkg.MakeDepends, aurPkg.CheckDepends} {
 			for _, aurDep := range deps {
-				if _, err := dp.LocalDb.PkgCache().FindSatisfier(aurDep); err == nil {
+				if _, err := dp.LocalDB.PkgCache().FindSatisfier(aurDep); err == nil {
 					missing.Good.set(aurDep)
 					continue
 				}
@@ -243,7 +243,7 @@ func (dp *depPool) _checkMissing(dep string, stack []string, missing *missing) {
 	if repoPkg != nil {
 		missing.Good.set(dep)
 		repoPkg.Depends().ForEach(func(repoDep alpm.Depend) error {
-			if _, err := dp.LocalDb.PkgCache().FindSatisfier(repoDep.String()); err == nil {
+			if _, err := dp.LocalDB.PkgCache().FindSatisfier(repoDep.String()); err == nil {
 				missing.Good.set(repoDep.String())
 				return nil
 			}

+ 25 - 25
depPool.go

@@ -10,14 +10,14 @@ import (
 )
 
 type target struct {
-	Db      string
+	DB      string
 	Name    string
 	Mod     string
 	Version string
 }
 
 func toTarget(pkg string) target {
-	db, dep := splitDbFromName(pkg)
+	db, dep := splitDBFromName(pkg)
 	name, mod, version := splitDep(dep)
 
 	return target{
@@ -33,8 +33,8 @@ func (t target) DepString() string {
 }
 
 func (t target) String() string {
-	if t.Db != "" {
-		return t.Db + "/" + t.DepString()
+	if t.DB != "" {
+		return t.DB + "/" + t.DepString()
 	}
 
 	return t.DepString()
@@ -47,17 +47,17 @@ type depPool struct {
 	Aur      map[string]*rpc.Pkg
 	AurCache map[string]*rpc.Pkg
 	Groups   []string
-	LocalDb  *alpm.Db
-	SyncDb   alpm.DbList
+	LocalDB  *alpm.DB
+	SyncDB   alpm.DBList
 	Warnings *aurWarnings
 }
 
 func makeDepPool() (*depPool, error) {
-	localDb, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return nil, err
 	}
-	syncDb, err := alpmHandle.SyncDbs()
+	syncDB, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return nil, err
 	}
@@ -69,8 +69,8 @@ func makeDepPool() (*depPool, error) {
 		make(map[string]*rpc.Pkg),
 		make(map[string]*rpc.Pkg),
 		make([]string, 0),
-		localDb,
-		syncDb,
+		localDB,
+		syncDB,
 		nil,
 	}
 
@@ -100,25 +100,25 @@ func (dp *depPool) ResolveTargets(pkgs []string) error {
 		}
 
 		var foundPkg *alpm.Package
-		var singleDb *alpm.Db
+		var singleDB *alpm.DB
 
 		// aur/ prefix means we only check the aur
-		if target.Db == "aur" || mode == modeAUR {
+		if target.DB == "aur" || mode == modeAUR {
 			dp.Targets = append(dp.Targets, target)
 			aurTargets.set(target.DepString())
 			continue
 		}
 
 		// If there'ss a different priefix only look in that repo
-		if target.Db != "" {
-			singleDb, err = alpmHandle.SyncDbByName(target.Db)
+		if target.DB != "" {
+			singleDB, err = alpmHandle.SyncDBByName(target.DB)
 			if err != nil {
 				return err
 			}
-			foundPkg, err = singleDb.PkgCache().FindSatisfier(target.DepString())
+			foundPkg, err = singleDB.PkgCache().FindSatisfier(target.DepString())
 			//otherwise find it in any repo
 		} else {
-			foundPkg, err = dp.SyncDb.FindSatisfier(target.DepString())
+			foundPkg, err = dp.SyncDB.FindSatisfier(target.DepString())
 		}
 
 		if err == nil {
@@ -130,11 +130,11 @@ func (dp *depPool) ResolveTargets(pkgs []string) error {
 			//check for groups
 			//currently we don't resolve the packages in a group
 			//only check if the group exists
-			//would be better to check the groups from singleDb if
+			//would be better to check the groups from singleDB if
 			//the user specified a db but there's no easy way to do
 			//it without making alpm_lists so don't bother for now
 			//db/group is probably a rare use case
-			group, err := dp.SyncDb.PkgCachebyGroup(target.Name)
+			group, err := dp.SyncDB.FindGroupPkgs(target.Name)
 			if err == nil {
 				dp.Groups = append(dp.Groups, target.String())
 				group.ForEach(func(pkg alpm.Package) error {
@@ -146,7 +146,7 @@ func (dp *depPool) ResolveTargets(pkgs []string) error {
 		}
 
 		//if there was no db prefix check the aur
-		if target.Db == "" {
+		if target.DB == "" {
 			aurTargets.set(target.DepString())
 		}
 
@@ -207,7 +207,7 @@ func (dp *depPool) findProvides(pkgs stringSet) error {
 	}
 
 	for pkg := range pkgs {
-		if _, err := dp.LocalDb.PkgByName(pkg); err == nil {
+		if _, err := dp.LocalDB.Pkg(pkg); err == nil {
 			continue
 		}
 		wg.Add(1)
@@ -301,10 +301,10 @@ func (dp *depPool) resolveAURPackages(pkgs stringSet, explicit bool) error {
 			continue
 		}
 
-		_, isInstalled := dp.LocalDb.PkgCache().FindSatisfier(dep) //has satisfier installed: skip
+		_, isInstalled := dp.LocalDB.PkgCache().FindSatisfier(dep) //has satisfier installed: skip
 		hm := hideMenus
 		hideMenus = isInstalled == nil
-		repoPkg, inRepos := dp.SyncDb.FindSatisfier(dep) //has satisfier in repo: fetch it
+		repoPkg, inRepos := dp.SyncDB.FindSatisfier(dep) //has satisfier in repo: fetch it
 		hideMenus = hm
 		if isInstalled == nil && (config.ReBuild != "tree" || inRepos == nil) {
 			continue
@@ -335,13 +335,13 @@ func (dp *depPool) ResolveRepoDependency(pkg *alpm.Package) {
 		}
 
 		//has satisfier installed: skip
-		_, isInstalled := dp.LocalDb.PkgCache().FindSatisfier(dep.String())
+		_, isInstalled := dp.LocalDB.PkgCache().FindSatisfier(dep.String())
 		if isInstalled == nil {
 			return
 		}
 
 		//has satisfier in repo: fetch it
-		repoPkg, inRepos := dp.SyncDb.FindSatisfier(dep.String())
+		repoPkg, inRepos := dp.SyncDB.FindSatisfier(dep.String())
 		if inRepos != nil {
 			return
 		}
@@ -389,7 +389,7 @@ func (dp *depPool) findSatisfierAurCache(dep string) *rpc.Pkg {
 	seen := make(stringSet)
 	providers := makeProviders(depName)
 
-	if _, err := dp.LocalDb.PkgByName(depName); err == nil {
+	if _, err := dp.LocalDB.Pkg(depName); err == nil {
 		if pkg, ok := dp.AurCache[dep]; ok && pkgSatisfies(pkg.Name, pkg.Version, dep) {
 			return pkg
 		}

+ 8 - 8
download.go

@@ -141,7 +141,7 @@ func getPkgbuilds(pkgs []string) error {
 	aur, repo, err := packageSlices(pkgs)
 
 	for n := range aur {
-		_, pkg := splitDbFromName(aur[n])
+		_, pkg := splitDBFromName(aur[n])
 		aur[n] = pkg
 	}
 
@@ -203,7 +203,7 @@ func getPkgbuildsfromABS(pkgs []string, path string) (bool, error) {
 	missing := make([]string, 0)
 	downloaded := 0
 
-	dbList, err := alpmHandle.SyncDbs()
+	dbList, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return false, err
 	}
@@ -212,15 +212,15 @@ func getPkgbuildsfromABS(pkgs []string, path string) (bool, error) {
 		var pkg *alpm.Package
 		var err error
 		var url string
-		pkgDb, name := splitDbFromName(pkgN)
+		pkgDB, name := splitDBFromName(pkgN)
 
-		if pkgDb != "" {
-			if db, err := alpmHandle.SyncDbByName(pkgDb); err == nil {
-				pkg, err = db.PkgByName(name)
+		if pkgDB != "" {
+			if db, err := alpmHandle.SyncDBByName(pkgDB); err == nil {
+				pkg, err = db.Pkg(name)
 			}
 		} else {
-			dbList.ForEach(func(db alpm.Db) error {
-				if pkg, err = db.PkgByName(name); err == nil {
+			dbList.ForEach(func(db alpm.DB) error {
+				if pkg, err = db.Pkg(name); err == nil {
 					return fmt.Errorf("")
 				}
 				return nil

+ 1 - 1
go.mod

@@ -3,6 +3,6 @@ module github.com/Jguer/yay/v9
 require (
 	github.com/Morganamilo/go-pacmanconf v0.0.0-20180910220353-9c5265e1b14f
 	github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5
-	github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5
+	github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0
 	github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9
 )

+ 2 - 0
go.sum

@@ -4,6 +4,8 @@ github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5 h1:0mWTtDLD
 github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5/go.mod h1:MP6VGY1NNpVUmYIEgoM9acix95KQqIRyqQ0hCLsyYUY=
 github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5 h1:JPIXUHXLZYwYUTlGpCCRMNFt8IRAyLPUsnXYqOJ6U/w=
 github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5/go.mod h1:1F60/e8oQFVJrZRH0TBqwtiB5ajJ5avOc4MoGRY9CFU=
+github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0 h1:MtH4SM1pw+23QhMERYK38DyGNqf6F3zUhxeKmQhuHC0=
+github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0/go.mod h1:1F60/e8oQFVJrZRH0TBqwtiB5ajJ5avOc4MoGRY9CFU=
 github.com/mikkeloscar/aur v0.0.0-20180725140122-f998dbf94dc4 h1:qgHSZbD0g3W7KAkZFzXlSqgriYnzEUFS1gkgEiv2GrE=
 github.com/mikkeloscar/aur v0.0.0-20180725140122-f998dbf94dc4/go.mod h1:n1NKHoldRNhIEufSx1PiDYcd2W+wpbz5/5K+p2eNDVk=
 github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9 h1:g4TBYa1sjv/TZfU9t82oYlRneu8cCVr3dnazE7os5vw=

+ 8 - 8
install.go

@@ -347,24 +347,24 @@ func install(parser *arguments) error {
 	return nil
 }
 
-func inRepos(syncDb alpm.DbList, pkg string) bool {
+func inRepos(syncDB alpm.DBList, pkg string) bool {
 	target := toTarget(pkg)
 
-	if target.Db == "aur" {
+	if target.DB == "aur" {
 		return false
-	} else if target.Db != "" {
+	} else if target.DB != "" {
 		return true
 	}
 
 	previousHideMenus := hideMenus
 	hideMenus = false
-	_, err := syncDb.FindSatisfier(target.DepString())
+	_, err := syncDB.FindSatisfier(target.DepString())
 	hideMenus = previousHideMenus
 	if err == nil {
 		return true
 	}
 
-	_, err = syncDb.PkgCachebyGroup(target.Name)
+	_, err = syncDB.FindGroupPkgs(target.Name)
 	if err == nil {
 		return true
 	}
@@ -379,7 +379,7 @@ func earlyPacmanCall(parser *arguments) error {
 	parser.clearTargets()
 	arguments.clearTargets()
 
-	syncDb, err := alpmHandle.SyncDbs()
+	syncDB, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return err
 	}
@@ -389,7 +389,7 @@ func earlyPacmanCall(parser *arguments) error {
 	} else {
 		//separate aur and repo targets
 		for _, target := range targets {
-			if inRepos(syncDb, target) {
+			if inRepos(syncDB, target) {
 				arguments.addTarget(target)
 			} else {
 				parser.addTarget(target)
@@ -950,7 +950,7 @@ func buildInstallPkgbuilds(dp *depPool, do *depOrder, srcinfos map[string]*gosrc
 		if cmdArgs.existsArg("needed") {
 			installed := true
 			for _, split := range base {
-				if alpmpkg, err := dp.LocalDb.PkgByName(split.Name); err != nil || alpmpkg.Version() != version {
+				if alpmpkg, err := dp.LocalDB.Pkg(split.Name); err != nil || alpmpkg.Version() != version {
 					installed = false
 				}
 			}

+ 1 - 1
main.go

@@ -168,7 +168,7 @@ func initAlpmHandle() error {
 		}
 	}
 
-	if alpmHandle, err = alpm.Init(pacmanConf.RootDir, pacmanConf.DBPath); err != nil {
+	if alpmHandle, err = alpm.Initialize(pacmanConf.RootDir, pacmanConf.DBPath); err != nil {
 		return fmt.Errorf("Unable to CreateHandle: %s", err)
 	}
 

+ 6 - 6
print.go

@@ -60,7 +60,7 @@ func human(size int64) string {
 
 // PrintSearch handles printing search results in a given format
 func (q aurQuery) printSearch(start int) {
-	localDb, _ := alpmHandle.LocalDb()
+	localDB, _ := alpmHandle.LocalDB()
 
 	for i, res := range q {
 		var toprint string
@@ -88,7 +88,7 @@ func (q aurQuery) printSearch(start int) {
 			toprint += bold(red("(Out-of-date "+formatTime(res.OutOfDate)+")")) + " "
 		}
 
-		if pkg, err := localDb.PkgByName(res.Name); err == nil {
+		if pkg, err := localDB.Pkg(res.Name); err == nil {
 			if pkg.Version() != res.Version {
 				toprint += bold(green("(Installed: " + pkg.Version() + ")"))
 			} else {
@@ -124,9 +124,9 @@ func (s repoQuery) printSearch() {
 			toprint += fmt.Sprint(res.Groups().Slice(), " ")
 		}
 
-		localDb, err := alpmHandle.LocalDb()
+		localDB, err := alpmHandle.LocalDB()
 		if err == nil {
-			if pkg, err := localDb.PkgByName(res.Name()); err == nil {
+			if pkg, err := localDB.Pkg(res.Name()); err == nil {
 				if pkg.Version() != res.Version() {
 					toprint += bold(green("(Installed: " + pkg.Version() + ")"))
 				} else {
@@ -318,12 +318,12 @@ func PrintInfo(a *rpc.Pkg) {
 
 // BiggestPackages prints the name of the ten biggest packages in the system.
 func biggestPackages() {
-	localDb, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return
 	}
 
-	pkgCache := localDb.PkgCache()
+	pkgCache := localDB.PkgCache()
 	pkgS := pkgCache.SortBySize().Slice()
 
 	if len(pkgS) < 10 {

+ 20 - 20
query.go

@@ -64,11 +64,11 @@ func (q aurQuery) Swap(i, j int) {
 // FilterPackages filters packages based on source and type from local repository.
 func filterPackages() (local []alpm.Package, remote []alpm.Package,
 	localNames []string, remoteNames []string, err error) {
-	localDb, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return
 	}
-	dbList, err := alpmHandle.SyncDbs()
+	dbList, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return
 	}
@@ -76,11 +76,11 @@ func filterPackages() (local []alpm.Package, remote []alpm.Package,
 	f := func(k alpm.Package) error {
 		found := false
 		// For each DB search for our secret package.
-		_ = dbList.ForEach(func(d alpm.Db) error {
+		_ = dbList.ForEach(func(d alpm.DB) error {
 			if found {
 				return nil
 			}
-			_, err := d.PkgByName(k.Name())
+			_, err := d.Pkg(k.Name())
 			if err == nil {
 				found = true
 				local = append(local, k)
@@ -96,7 +96,7 @@ func filterPackages() (local []alpm.Package, remote []alpm.Package,
 		return nil
 	}
 
-	err = localDb.PkgCache().ForEach(f)
+	err = localDB.PkgCache().ForEach(f)
 	return
 }
 
@@ -211,14 +211,14 @@ func syncInfo(pkgS []string) (err error) {
 	}
 
 	if len(aurS) != 0 {
-		noDb := make([]string, 0, len(aurS))
+		noDB := make([]string, 0, len(aurS))
 
 		for _, pkg := range aurS {
-			_, name := splitDbFromName(pkg)
-			noDb = append(noDb, name)
+			_, name := splitDBFromName(pkg)
+			noDB = append(noDB, name)
 		}
 
-		info, err = aurInfoPrint(noDb)
+		info, err = aurInfoPrint(noDB)
 		if err != nil {
 			missing = true
 			fmt.Fprintln(os.Stderr, err)
@@ -256,12 +256,12 @@ func syncInfo(pkgS []string) (err error) {
 
 // Search handles repo searches. Creates a RepoSearch struct.
 func queryRepo(pkgInputN []string) (s repoQuery, err error) {
-	dbList, err := alpmHandle.SyncDbs()
+	dbList, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return
 	}
 
-	dbList.ForEach(func(db alpm.Db) error {
+	dbList.ForEach(func(db alpm.DB) error {
 		if len(pkgInputN) == 0 {
 			pkgs := db.PkgCache()
 			s = append(s, pkgs.Slice()...)
@@ -283,13 +283,13 @@ func queryRepo(pkgInputN []string) (s repoQuery, err error) {
 
 // PackageSlices separates an input slice into aur and repo slices
 func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
-	dbList, err := alpmHandle.SyncDbs()
+	dbList, err := alpmHandle.SyncDBs()
 	if err != nil {
 		return
 	}
 
 	for _, _pkg := range toCheck {
-		db, name := splitDbFromName(_pkg)
+		db, name := splitDBFromName(_pkg)
 		found := false
 
 		if db == "aur" || mode == modeAUR {
@@ -300,8 +300,8 @@ func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
 			continue
 		}
 
-		_ = dbList.ForEach(func(db alpm.Db) error {
-			_, err := db.PkgByName(name)
+		_ = dbList.ForEach(func(db alpm.DB) error {
+			_, err := db.Pkg(name)
 
 			if err == nil {
 				found = true
@@ -312,7 +312,7 @@ func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
 		})
 
 		if !found {
-			_, errdb := dbList.PkgCachebyGroup(name)
+			_, errdb := dbList.FindGroupPkgs(name)
 			found = errdb == nil
 		}
 
@@ -330,7 +330,7 @@ func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
 // and unneeded by the system
 // removeOptional decides whether optional dependencies are counted or not
 func hangingPackages(removeOptional bool) (hanging []string, err error) {
-	localDb, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return
 	}
@@ -342,7 +342,7 @@ func hangingPackages(removeOptional bool) (hanging []string, err error) {
 	safePackages := make(map[string]uint8)
 	// provides stores a mapping from the provides name back to the original package name
 	provides := make(mapStringSet)
-	packages := localDb.PkgCache()
+	packages := localDB.PkgCache()
 
 	// Mark explicit dependencies and enumerate the provides list
 	setupResources := func(pkg alpm.Package) error {
@@ -444,12 +444,12 @@ func statistics() (info struct {
 	var nPkg int
 	var ePkg int
 
-	localDb, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return
 	}
 
-	for _, pkg := range localDb.PkgCache().Slice() {
+	for _, pkg := range localDB.PkgCache().Slice() {
 		tS += pkg.ISize()
 		nPkg++
 		if pkg.Reason() == 0 {

+ 4 - 4
upgrade.go

@@ -31,7 +31,7 @@ func (u upSlice) Less(i, j int) bool {
 		return lessRunes(iRunes, jRunes)
 	}
 
-	syncDb, err := alpmHandle.SyncDbs()
+	syncDB, err := alpmHandle.SyncDBs()
 	if err != nil {
 		iRunes := []rune(u[i].Repository)
 		jRunes := []rune(u[j].Repository)
@@ -39,7 +39,7 @@ func (u upSlice) Less(i, j int) bool {
 	}
 
 	less := false
-	found := syncDb.ForEach(func(db alpm.Db) error {
+	found := syncDB.ForEach(func(db alpm.DB) error {
 		if db.Name() == u[i].Repository {
 			less = true
 		} else if db.Name() == u[j].Repository {
@@ -290,7 +290,7 @@ func printLocalNewerThanAUR(
 func upRepo(local []alpm.Package) (upSlice, error) {
 	slice := upSlice{}
 
-	localDB, err := alpmHandle.LocalDb()
+	localDB, err := alpmHandle.LocalDB()
 	if err != nil {
 		return slice, err
 	}
@@ -304,7 +304,7 @@ func upRepo(local []alpm.Package) (upSlice, error) {
 
 	alpmHandle.SyncSysupgrade(cmdArgs.existsDouble("u", "sysupgrade"))
 	alpmHandle.TransGetAdd().ForEach(func(pkg alpm.Package) error {
-		localPkg, err := localDB.PkgByName(pkg.Name())
+		localPkg, err := localDB.Pkg(pkg.Name())
 		localVer := "-"
 
 		if err == nil {

+ 1 - 1
utils.go

@@ -112,7 +112,7 @@ func removeInvalidTargets(targets []string) []string {
 	filteredTargets := make([]string, 0)
 
 	for _, target := range targets {
-		db, _ := splitDbFromName(target)
+		db, _ := splitDBFromName(target)
 
 		if db == "aur" && mode == modeRepo {
 			fmt.Printf("%s %s %s\n", bold(yellow(arrow)), cyan(target), bold("Can't use target with option --repo -- skipping"))

+ 37 - 11
vendor/github.com/jguer/go-alpm/alpm.go

@@ -12,18 +12,44 @@ import "C"
 
 import "unsafe"
 
+// Init initializes alpm handle
+func Initialize(root, dbpath string) (*Handle, error) {
+	cRoot := C.CString(root)
+	cDBPath := C.CString(dbpath)
+	var cErr C.alpm_errno_t
+	h := C.alpm_initialize(cRoot, cDBPath, &cErr)
+
+	defer C.free(unsafe.Pointer(cRoot))
+	defer C.free(unsafe.Pointer(cDBPath))
+
+	if cErr != 0 {
+		return nil, Error(cErr)
+	}
+
+	return &Handle{h}, nil
+}
+
+// Release releases the alpm handle
+func (h *Handle) Release() error {
+	if er := C.alpm_release(h.ptr); er != 0 {
+		return Error(er)
+	}
+	h.ptr = nil
+	return nil
+}
+
+// LastError gets the last pm_error
+func (h *Handle) LastError() error {
+	if h.ptr != nil {
+		cErr := C.alpm_errno(h.ptr)
+		if cErr != 0 {
+			return Error(cErr)
+		}
+	}
+	return nil
+}
+
 // Version returns libalpm version string.
 func Version() string {
 	return C.GoString(C.alpm_version())
 }
-
-// VerCmp performs version comparison according to Pacman conventions. Return
-// value is <0 if and only if v1 is older than v2.
-func VerCmp(v1, v2 string) int {
-	c1 := C.CString(v1)
-	c2 := C.CString(v2)
-	defer C.free(unsafe.Pointer(c1))
-	defer C.free(unsafe.Pointer(c2))
-	result := C.alpm_pkg_vercmp(c1, c2)
-	return int(result)
-}

+ 54 - 52
vendor/github.com/jguer/go-alpm/db.go

@@ -18,61 +18,42 @@ import (
 	"unsafe"
 )
 
-// Db structure representing a alpm database.
-type Db struct {
+// DB structure representing a alpm database.
+type DB struct {
 	ptr    *C.alpm_db_t
 	handle Handle
 }
 
-// DbList structure representing a alpm database list.
-type DbList struct {
+// DBList structure representing a alpm database list.
+type DBList struct {
 	*list
 	handle Handle
 }
 
-// ForEach executes an action on each Db.
-func (l DbList) ForEach(f func(Db) error) error {
+// ForEach executes an action on each DB.
+func (l DBList) ForEach(f func(DB) error) error {
 	return l.forEach(func(p unsafe.Pointer) error {
-		return f(Db{(*C.alpm_db_t)(p), l.handle})
+		return f(DB{(*C.alpm_db_t)(p), l.handle})
 	})
 }
 
-// Slice converst Db list to Db slice.
-func (l DbList) Slice() []Db {
-	slice := []Db{}
-	l.ForEach(func(db Db) error {
+// Slice converst DB list to DB slice.
+func (l DBList) Slice() []DB {
+	slice := []DB{}
+	l.ForEach(func(db DB) error {
 		slice = append(slice, db)
 		return nil
 	})
 	return slice
 }
 
-// LocalDb returns the local database relative to the given handle.
-func (h Handle) LocalDb() (*Db, error) {
-	db := C.alpm_get_localdb(h.ptr)
-	if db == nil {
-		return nil, h.LastError()
-	}
-	return &Db{db, h}, nil
-}
-
-// SyncDbs returns list of Synced DBs.
-func (h Handle) SyncDbs() (DbList, error) {
-	dblist := C.alpm_get_syncdbs(h.ptr)
-	if dblist == nil {
-		return DbList{nil, h}, h.LastError()
-	}
-	dblistPtr := unsafe.Pointer(dblist)
-	return DbList{(*list)(dblistPtr), h}, nil
-}
-
-// SyncDbByName finds a registered database by name.
-func (h Handle) SyncDbByName(name string) (db *Db, err error) {
-	dblist, err := h.SyncDbs()
+// SyncDBByName finds a registered database by name.
+func (h *Handle) SyncDBByName(name string) (db *DB, err error) {
+	dblist, err := h.SyncDBs()
 	if err != nil {
 		return nil, err
 	}
-	dblist.ForEach(func(b Db) error {
+	dblist.ForEach(func(b DB) error {
 		if b.Name() == name {
 			db = &b
 			return io.EOF
@@ -85,8 +66,8 @@ func (h Handle) SyncDbByName(name string) (db *Db, err error) {
 	return nil, fmt.Errorf("database %s not found", name)
 }
 
-// RegisterSyncDb Loads a sync database with given name and signature check level.
-func (h Handle) RegisterSyncDb(dbname string, siglevel SigLevel) (*Db, error) {
+// RegisterSyncDB Loads a sync database with given name and signature check level.
+func (h *Handle) RegisterSyncDB(dbname string, siglevel SigLevel) (*DB, error) {
 	cName := C.CString(dbname)
 	defer C.free(unsafe.Pointer(cName))
 
@@ -94,22 +75,40 @@ func (h Handle) RegisterSyncDb(dbname string, siglevel SigLevel) (*Db, error) {
 	if db == nil {
 		return nil, h.LastError()
 	}
-	return &Db{db, h}, nil
+	return &DB{db, *h}, nil
+}
+
+func (db *DB) Unregister() error {
+	ok := C.alpm_db_unregister(db.ptr)
+	if ok != 0 {
+		return db.handle.LastError()
+	}
+
+	return nil
+}
+
+func (h *Handle) UnregisterAllSyncDBs() error {
+	ok := C.alpm_unregister_all_syncdbs(h.ptr)
+	if ok != 0 {
+		return h.LastError()
+	}
+
+	return nil
 }
 
 // Name returns name of the db
-func (db Db) Name() string {
+func (db *DB) Name() string {
 	return C.GoString(C.alpm_db_get_name(db.ptr))
 }
 
 // Servers returns host server URL.
-func (db Db) Servers() []string {
+func (db *DB) Servers() []string {
 	ptr := unsafe.Pointer(C.alpm_db_get_servers(db.ptr))
 	return StringList{(*list)(ptr)}.Slice()
 }
 
 // SetServers sets server list to use.
-func (db Db) SetServers(servers []string) {
+func (db *DB) SetServers(servers []string) {
 	C.alpm_db_set_servers(db.ptr, nil)
 	for _, srv := range servers {
 		Csrv := C.CString(srv)
@@ -118,47 +117,50 @@ func (db Db) SetServers(servers []string) {
 	}
 }
 
+// AddServers adds a string to the server list.
+func (db *DB) AddServer(server string) {
+	Csrv := C.CString(server)
+	defer C.free(unsafe.Pointer(Csrv))
+	C.alpm_db_add_server(db.ptr, Csrv)
+}
+
 // SetUsage sets the Usage of the database
-func (db Db) SetUsage(usage Usage) {
+func (db *DB) SetUsage(usage Usage) {
 	C.alpm_db_set_usage(db.ptr, C.int(usage))
 }
 
-// PkgByName searches a package in db.
-func (db Db) PkgByName(name string) (*Package, error) {
+// Name searches a package in db.
+func (db *DB) Pkg(name string) (*Package, error) {
 	cName := C.CString(name)
 	defer C.free(unsafe.Pointer(cName))
 	ptr := C.alpm_db_get_pkg(db.ptr, cName)
 	if ptr == nil {
-		return nil,
-			fmt.Errorf("Error when retrieving %s from database %s: %s",
-				name, db.Name(), db.handle.LastError())
+		return nil, db.handle.LastError()
 	}
 	return &Package{ptr, db.handle}, nil
 }
 
 // PkgCachebyGroup returns a PackageList of packages belonging to a group
-func (l DbList) PkgCachebyGroup(name string) (PackageList, error) {
+func (l DBList) FindGroupPkgs(name string) (PackageList, error) {
 	cName := C.CString(name)
 	defer C.free(unsafe.Pointer(cName))
 	pkglist := (*C.struct___alpm_list_t)(unsafe.Pointer(l.list))
 
 	pkgcache := (*list)(unsafe.Pointer(C.alpm_find_group_pkgs(pkglist, cName)))
 	if pkgcache == nil {
-		return PackageList{pkgcache, l.handle},
-			fmt.Errorf("Error when retrieving group %s from database list: %s",
-				name, l.handle.LastError())
+		return PackageList{pkgcache, l.handle}, l.handle.LastError()
 	}
 
 	return PackageList{pkgcache, l.handle}, nil
 }
 
 // PkgCache returns the list of packages of the database
-func (db Db) PkgCache() PackageList {
+func (db *DB) PkgCache() PackageList {
 	pkgcache := (*list)(unsafe.Pointer(C.alpm_db_get_pkgcache(db.ptr)))
 	return PackageList{pkgcache, db.handle}
 }
 
-func (db Db) Search(targets []string) PackageList {
+func (db *DB) Search(targets []string) PackageList {
 	var needles *C.alpm_list_t
 
 	for _, str := range targets {

+ 0 - 44
vendor/github.com/jguer/go-alpm/dependency.go

@@ -1,44 +0,0 @@
-package alpm
-
-/*
-#include <alpm.h>
-*/
-import "C"
-import (
-	"fmt"
-	"unsafe"
-)
-
-// FindSatisfier searches a DbList for a package that satisfies depstring
-// Example "glibc>=2.12"
-func (l DbList) FindSatisfier(depstring string) (*Package, error) {
-	cDepString := C.CString(depstring)
-	defer C.free(unsafe.Pointer(cDepString))
-
-	pkgList := (*C.struct___alpm_list_t)(unsafe.Pointer(l.list))
-	pkgHandle := (*C.struct___alpm_handle_t)(unsafe.Pointer(l.handle.ptr))
-
-	ptr := C.alpm_find_dbs_satisfier(pkgHandle, pkgList, cDepString)
-	if ptr == nil {
-		return nil,
-			fmt.Errorf("unable to satisfy dependency %s in Dblist", depstring)
-	}
-
-	return &Package{ptr, l.handle}, nil
-}
-
-// FindSatisfier finds a package that satisfies depstring from PkgList
-func (l PackageList) FindSatisfier(depstring string) (*Package, error) {
-	cDepString := C.CString(depstring)
-	defer C.free(unsafe.Pointer(cDepString))
-
-	pkgList := (*C.struct___alpm_list_t)(unsafe.Pointer(l.list))
-
-	ptr := C.alpm_find_satisfier(pkgList, cDepString)
-	if ptr == nil {
-		return nil,
-			fmt.Errorf("unable to find dependency %s in PackageList", depstring)
-	}
-
-	return &Package{ptr, l.handle}, nil
-}

+ 1 - 1
vendor/github.com/jguer/go-alpm/enums.go

@@ -142,7 +142,7 @@ const (
 	TransFlagRecurse
 	// 7 is missing
 	_
-	TransFlagDbOnly
+	TransFlagDBOnly
 	TransFlagAllDeps
 	TransFlagDownloadOnly
 	TransFlagNoScriptlets

+ 80 - 98
vendor/github.com/jguer/go-alpm/handle.go

@@ -25,49 +25,12 @@ type Handle struct {
 	ptr *C.alpm_handle_t
 }
 
-// Init initializes alpm handle
-func Init(root, dbpath string) (*Handle, error) {
-	cRoot := C.CString(root)
-	cDBPath := C.CString(dbpath)
-	var cErr C.alpm_errno_t
-	h := C.alpm_initialize(cRoot, cDBPath, &cErr)
-
-	defer C.free(unsafe.Pointer(cRoot))
-	defer C.free(unsafe.Pointer(cDBPath))
-
-	if cErr != 0 {
-		return nil, Error(cErr)
-	}
-
-	return &Handle{h}, nil
-}
-
-// Release releases the alpm handle
-func (h *Handle) Release() error {
-	if er := C.alpm_release(h.ptr); er != 0 {
-		return Error(er)
-	}
-	h.ptr = nil
-	return nil
-}
-
-// LastError gets the last pm_error
-func (h Handle) LastError() error {
-	if h.ptr != nil {
-		cErr := C.alpm_errno(h.ptr)
-		if cErr != 0 {
-			return Error(cErr)
-		}
-	}
-	return nil
-}
-
 //
 //alpm options getters and setters
 //
 
 //helper functions for wrapping list_t getters and setters
-func (h Handle) optionGetList(f func(*C.alpm_handle_t) *C.alpm_list_t) (StringList, error) {
+func (h *Handle) optionGetList(f func(*C.alpm_handle_t) *C.alpm_list_t) (StringList, error) {
 	alpmList := f(h.ptr)
 	goList := StringList{(*list)(unsafe.Pointer(alpmList))}
 
@@ -77,7 +40,7 @@ func (h Handle) optionGetList(f func(*C.alpm_handle_t) *C.alpm_list_t) (StringLi
 	return goList, nil
 }
 
-func (h Handle) optionSetList(hookDirs []string, f func(*C.alpm_handle_t, *C.alpm_list_t) C.int) error {
+func (h *Handle) optionSetList(hookDirs []string, f func(*C.alpm_handle_t, *C.alpm_list_t) C.int) error {
 	var list *C.alpm_list_t
 
 	for _, dir := range hookDirs {
@@ -93,7 +56,7 @@ func (h Handle) optionSetList(hookDirs []string, f func(*C.alpm_handle_t, *C.alp
 	return nil
 }
 
-func (h Handle) optionAddList(hookDir string, f func(*C.alpm_handle_t, *C.char) C.int) error {
+func (h *Handle) optionAddList(hookDir string, f func(*C.alpm_handle_t, *C.char) C.int) error {
 	cHookDir := C.CString(hookDir)
 	defer C.free(unsafe.Pointer(cHookDir))
 	ok := f(h.ptr, cHookDir)
@@ -103,7 +66,7 @@ func (h Handle) optionAddList(hookDir string, f func(*C.alpm_handle_t, *C.char)
 	return nil
 }
 
-func (h Handle) optionRemoveList(dir string, f func(*C.alpm_handle_t, *C.char) C.int) (bool, error) {
+func (h *Handle) optionRemoveList(dir string, f func(*C.alpm_handle_t, *C.char) C.int) (bool, error) {
 	cDir := C.CString(dir)
 	ok := f(h.ptr, cDir)
 	defer C.free(unsafe.Pointer(cDir))
@@ -113,7 +76,7 @@ func (h Handle) optionRemoveList(dir string, f func(*C.alpm_handle_t, *C.char) C
 	return ok == 1, nil
 }
 
-func (h Handle) optionMatchList(dir string, f func(*C.alpm_handle_t, *C.char) C.int) (bool, error) {
+func (h *Handle) optionMatchList(dir string, f func(*C.alpm_handle_t, *C.char) C.int) (bool, error) {
 	cDir := C.CString(dir)
 	ok := f(h.ptr, cDir)
 	defer C.free(unsafe.Pointer(cDir))
@@ -126,7 +89,7 @@ func (h Handle) optionMatchList(dir string, f func(*C.alpm_handle_t, *C.char) C.
 }
 
 //helper functions for *char based getters and setters
-func (h Handle) optionGetStr(f func(*C.alpm_handle_t) *C.char) (string, error) {
+func (h *Handle) optionGetStr(f func(*C.alpm_handle_t) *C.char) (string, error) {
 	cStr := f(h.ptr)
 	str := C.GoString(cStr)
 	if cStr == nil {
@@ -136,7 +99,7 @@ func (h Handle) optionGetStr(f func(*C.alpm_handle_t) *C.char) (string, error) {
 	return str, nil
 }
 
-func (h Handle) optionSetStr(str string, f func(*C.alpm_handle_t, *C.char) C.int) error {
+func (h *Handle) optionSetStr(str string, f func(*C.alpm_handle_t, *C.char) C.int) error {
 	cStr := C.CString(str)
 	defer C.free(unsafe.Pointer(cStr))
 	ok := f(h.ptr, cStr)
@@ -151,97 +114,97 @@ func (h Handle) optionSetStr(str string, f func(*C.alpm_handle_t, *C.char) C.int
 //end of helpers
 //
 
-func (h Handle) Root() (string, error) {
+func (h *Handle) Root() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_root(handle)
 	})
 }
 
-func (h Handle) DBPath() (string, error) {
+func (h *Handle) DBPath() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_dbpath(handle)
 	})
 }
 
-func (h Handle) Lockfile() (string, error) {
+func (h *Handle) Lockfile() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_lockfile(handle)
 	})
 }
 
-func (h Handle) CacheDirs() (StringList, error) {
+func (h *Handle) CacheDirs() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_cachedirs(handle)
 	})
 }
 
-func (h Handle) AddCacheDir(hookDir string) error {
+func (h *Handle) AddCacheDir(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_cachedir(handle, str)
 	})
 }
 
-func (h Handle) SetCacheDirs(hookDirs ...string) error {
+func (h *Handle) SetCacheDirs(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_cachedirs(handle, l)
 	})
 }
 
-func (h Handle) RemoveCacheDir(dir string) (bool, error) {
+func (h *Handle) RemoveCacheDir(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_cachedir(handle, str)
 	})
 }
 
-func (h Handle) HookDirs() (StringList, error) {
+func (h *Handle) HookDirs() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_hookdirs(handle)
 	})
 }
 
-func (h Handle) AddHookDir(hookDir string) error {
+func (h *Handle) AddHookDir(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_hookdir(handle, str)
 	})
 }
 
-func (h Handle) SetHookDirs(hookDirs ...string) error {
+func (h *Handle) SetHookDirs(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_hookdirs(handle, l)
 	})
 }
 
-func (h Handle) RemoveHookDir(dir string) (bool, error) {
+func (h *Handle) RemoveHookDir(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_hookdir(handle, str)
 	})
 }
 
-func (h Handle) LogFile() (string, error) {
+func (h *Handle) LogFile() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_logfile(handle)
 	})
 }
 
-func (h Handle) SetLogFile(str string) error {
+func (h *Handle) SetLogFile(str string) error {
 	return h.optionSetStr(str, func(handle *C.alpm_handle_t, c_str *C.char) C.int {
 		return C.alpm_option_set_logfile(handle, c_str)
 	})
 }
 
-func (h Handle) GPGDir() (string, error) {
+func (h *Handle) GPGDir() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_gpgdir(handle)
 	})
 }
 
-func (h Handle) SetGPGDir(str string) error {
+func (h *Handle) SetGPGDir(str string) error {
 	return h.optionSetStr(str, func(handle *C.alpm_handle_t, c_str *C.char) C.int {
 		return C.alpm_option_set_gpgdir(handle, c_str)
 	})
 }
 
-func (h Handle) UseSyslog() (bool, error) {
+func (h *Handle) UseSyslog() (bool, error) {
 	ok := C.alpm_option_get_usesyslog(h.ptr)
 	b := false
 
@@ -254,7 +217,7 @@ func (h Handle) UseSyslog() (bool, error) {
 	return b, nil
 }
 
-func (h Handle) SetUseSyslog(value bool) error {
+func (h *Handle) SetUseSyslog(value bool) error {
 	var intValue C.int
 	if value {
 		intValue = 1
@@ -267,115 +230,115 @@ func (h Handle) SetUseSyslog(value bool) error {
 	return nil
 }
 
-func (h Handle) NoUpgrades() (StringList, error) {
+func (h *Handle) NoUpgrades() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_noupgrades(handle)
 	})
 }
 
-func (h Handle) AddNoUpgrade(hookDir string) error {
+func (h *Handle) AddNoUpgrade(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_noupgrade(handle, str)
 	})
 }
 
-func (h Handle) SetNoUpgrades(hookDirs ...string) error {
+func (h *Handle) SetNoUpgrades(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_noupgrades(handle, l)
 	})
 }
 
-func (h Handle) RemoveNoUpgrade(dir string) (bool, error) {
+func (h *Handle) RemoveNoUpgrade(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_noupgrade(handle, str)
 	})
 }
 
-func (h Handle) MatchNoUpgrade(dir string) (bool, error) {
+func (h *Handle) MatchNoUpgrade(dir string) (bool, error) {
 	return h.optionMatchList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_match_noupgrade(handle, str)
 	})
 }
 
-func (h Handle) NoExtracts() (StringList, error) {
+func (h *Handle) NoExtracts() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_noextracts(handle)
 	})
 }
 
-func (h Handle) AddNoExtract(hookDir string) error {
+func (h *Handle) AddNoExtract(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_noextract(handle, str)
 	})
 }
 
-func (h Handle) SetNoExtracts(hookDirs ...string) error {
+func (h *Handle) SetNoExtracts(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_noextracts(handle, l)
 	})
 }
 
-func (h Handle) RemoveNoExtract(dir string) (bool, error) {
+func (h *Handle) RemoveNoExtract(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_noextract(handle, str)
 	})
 }
 
-func (h Handle) MatchNoExtract(dir string) (bool, error) {
+func (h *Handle) MatchNoExtract(dir string) (bool, error) {
 	return h.optionMatchList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_match_noextract(handle, str)
 	})
 }
 
-func (h Handle) IgnorePkgs() (StringList, error) {
+func (h *Handle) IgnorePkgs() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_ignorepkgs(handle)
 	})
 }
 
-func (h Handle) AddIgnorePkg(hookDir string) error {
+func (h *Handle) AddIgnorePkg(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_ignorepkg(handle, str)
 	})
 }
 
-func (h Handle) SetIgnorePkgs(hookDirs ...string) error {
+func (h *Handle) SetIgnorePkgs(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_ignorepkgs(handle, l)
 	})
 }
 
-func (h Handle) RemoveIgnorePkg(dir string) (bool, error) {
+func (h *Handle) RemoveIgnorePkg(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_ignorepkg(handle, str)
 	})
 }
 
-func (h Handle) IgnoreGroups() (StringList, error) {
+func (h *Handle) IgnoreGroups() (StringList, error) {
 	return h.optionGetList(func(handle *C.alpm_handle_t) *C.alpm_list_t {
 		return C.alpm_option_get_ignoregroups(handle)
 	})
 }
 
-func (h Handle) AddIgnoreGroup(hookDir string) error {
+func (h *Handle) AddIgnoreGroup(hookDir string) error {
 	return h.optionAddList(hookDir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_add_ignoregroup(handle, str)
 	})
 }
 
-func (h Handle) SetIgnoreGroups(hookDirs ...string) error {
+func (h *Handle) SetIgnoreGroups(hookDirs []string) error {
 	return h.optionSetList(hookDirs, func(handle *C.alpm_handle_t, l *C.alpm_list_t) C.int {
 		return C.alpm_option_set_ignoregroups(handle, l)
 	})
 }
 
-func (h Handle) RemoveIgnoreGroup(dir string) (bool, error) {
+func (h *Handle) RemoveIgnoreGroup(dir string) (bool, error) {
 	return h.optionRemoveList(dir, func(handle *C.alpm_handle_t, str *C.char) C.int {
 		return C.alpm_option_remove_ignoregroup(handle, str)
 	})
 }
 
-/*func (h Handle) optionGetList(f func(*C.alpm_handle_t) *C.alpm_list_t) (StringList, error){
+/*func (h *Handle) optionGetList(f func(*C.alpm_handle_t) *C.alpm_list_t) (StringList, error){
 	alpmList := f(h.ptr)
 	goList := StringList{(*list)(unsafe.Pointer(alpmList))}
 
@@ -386,7 +349,7 @@ func (h Handle) RemoveIgnoreGroup(dir string) (bool, error) {
 }*/
 
 //use alpm_depend_t
-func (h Handle) AssumeInstalled() (DependList, error) {
+func (h *Handle) AssumeInstalled() (DependList, error) {
 	alpmList := C.alpm_option_get_assumeinstalled(h.ptr)
 	depList := DependList{(*list)(unsafe.Pointer(alpmList))}
 
@@ -396,7 +359,7 @@ func (h Handle) AssumeInstalled() (DependList, error) {
 	return depList, nil
 }
 
-func (h Handle) AddAssumeInstalled(dep Depend) error {
+func (h *Handle) AddAssumeInstalled(dep Depend) error {
 	cDep := convertCDepend(dep)
 	defer freeCDepend(cDep)
 
@@ -407,7 +370,7 @@ func (h Handle) AddAssumeInstalled(dep Depend) error {
 	return nil
 }
 
-func (h Handle) SetAssumeInstalled(deps ...Depend) error {
+func (h *Handle) SetAssumeInstalled(deps []Depend) error {
 	//calling this function the first time causes alpm to set the
 	//assumeinstalled list to a list containing go allocated alpm_depend_t's
 	//this is bad because alpm might at some point tree to free them
@@ -435,7 +398,7 @@ func (h Handle) SetAssumeInstalled(deps ...Depend) error {
 
 }
 
-func (h Handle) RemoveAssumeInstalled(dep Depend) (bool, error) {
+func (h *Handle) RemoveAssumeInstalled(dep Depend) (bool, error) {
 	//internally alpm uses alpm_list_remove to remove a alpm_depend_t from
 	//the list
 	//i believe this function considers items equal if they are the same
@@ -460,19 +423,19 @@ func (h Handle) RemoveAssumeInstalled(dep Depend) (bool, error) {
 	return ok == 1, nil
 }
 
-func (h Handle) Arch() (string, error) {
+func (h *Handle) Arch() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_arch(handle)
 	})
 }
 
-func (h Handle) SetArch(str string) error {
+func (h *Handle) SetArch(str string) error {
 	return h.optionSetStr(str, func(handle *C.alpm_handle_t, cStr *C.char) C.int {
 		return C.alpm_option_set_arch(handle, cStr)
 	})
 }
 
-func (h Handle) DeltaRatio() (float64, error) {
+func (h *Handle) DeltaRatio() (float64, error) {
 	ok := C.alpm_option_get_deltaratio(h.ptr)
 	if ok < 0 {
 		return float64(ok), h.LastError()
@@ -480,7 +443,7 @@ func (h Handle) DeltaRatio() (float64, error) {
 	return float64(ok), nil
 }
 
-func (h Handle) SetDeltaRatio(ratio float64) error {
+func (h *Handle) SetDeltaRatio(ratio float64) error {
 	ok := C.alpm_option_set_deltaratio(h.ptr, C.double(ratio))
 	if ok < 0 {
 		return h.LastError()
@@ -488,7 +451,26 @@ func (h Handle) SetDeltaRatio(ratio float64) error {
 	return nil
 }
 
-func (h Handle) CheckSpace() (bool, error) {
+// LocalDB returns the local database relative to the given handle.
+func (h *Handle) LocalDB() (*DB, error) {
+	db := C.alpm_get_localdb(h.ptr)
+	if db == nil {
+		return nil, h.LastError()
+	}
+	return &DB{db, *h}, nil
+}
+
+// SyncDBs returns list of Synced DBs.
+func (h *Handle) SyncDBs() (DBList, error) {
+	dblist := C.alpm_get_syncdbs(h.ptr)
+	if dblist == nil {
+		return DBList{nil, *h}, h.LastError()
+	}
+	dblistPtr := unsafe.Pointer(dblist)
+	return DBList{(*list)(dblistPtr), *h}, nil
+}
+
+func (h *Handle) CheckSpace() (bool, error) {
 	ok := C.alpm_option_get_checkspace(h.ptr)
 	b := false
 
@@ -501,7 +483,7 @@ func (h Handle) CheckSpace() (bool, error) {
 	return b, nil
 }
 
-func (h Handle) SetCheckSpace(value bool) error {
+func (h *Handle) SetCheckSpace(value bool) error {
 	var cValue C.int
 	if value {
 		cValue = 1
@@ -514,19 +496,19 @@ func (h Handle) SetCheckSpace(value bool) error {
 	return nil
 }
 
-func (h Handle) DBExt() (string, error) {
+func (h *Handle) DBExt() (string, error) {
 	return h.optionGetStr(func(handle *C.alpm_handle_t) *C.char {
 		return C.alpm_option_get_dbext(handle)
 	})
 }
 
-func (h Handle) SetDBExt(str string) error {
+func (h *Handle) SetDBExt(str string) error {
 	return h.optionSetStr(str, func(handle *C.alpm_handle_t, cStr *C.char) C.int {
 		return C.alpm_option_set_dbext(handle, cStr)
 	})
 }
 
-func (h Handle) GetDefaultSigLevel() (SigLevel, error) {
+func (h *Handle) GetDefaultSigLevel() (SigLevel, error) {
 	sigLevel := C.alpm_option_get_default_siglevel(h.ptr)
 
 	if sigLevel < 0 {
@@ -535,7 +517,7 @@ func (h Handle) GetDefaultSigLevel() (SigLevel, error) {
 	return SigLevel(sigLevel), nil
 }
 
-func (h Handle) SetDefaultSigLevel(siglevel SigLevel) error {
+func (h *Handle) SetDefaultSigLevel(siglevel SigLevel) error {
 	ok := C.alpm_option_set_default_siglevel(h.ptr, C.int(siglevel))
 
 	if ok < 0 {
@@ -544,7 +526,7 @@ func (h Handle) SetDefaultSigLevel(siglevel SigLevel) error {
 	return nil
 }
 
-func (h Handle) GetLocalFileSigLevel() (SigLevel, error) {
+func (h *Handle) GetLocalFileSigLevel() (SigLevel, error) {
 	sigLevel := C.alpm_option_get_local_file_siglevel(h.ptr)
 
 	if sigLevel < 0 {
@@ -553,7 +535,7 @@ func (h Handle) GetLocalFileSigLevel() (SigLevel, error) {
 	return SigLevel(sigLevel), nil
 }
 
-func (h Handle) SetLocalFileSigLevel(siglevel SigLevel) error {
+func (h *Handle) SetLocalFileSigLevel(siglevel SigLevel) error {
 	ok := C.alpm_option_set_local_file_siglevel(h.ptr, C.int(siglevel))
 
 	if ok < 0 {
@@ -562,7 +544,7 @@ func (h Handle) SetLocalFileSigLevel(siglevel SigLevel) error {
 	return nil
 }
 
-func (h Handle) GetRemoteFileSigLevel() (SigLevel, error) {
+func (h *Handle) GetRemoteFileSigLevel() (SigLevel, error) {
 	sigLevel := C.alpm_option_get_remote_file_siglevel(h.ptr)
 
 	if sigLevel < 0 {
@@ -571,7 +553,7 @@ func (h Handle) GetRemoteFileSigLevel() (SigLevel, error) {
 	return SigLevel(sigLevel), nil
 }
 
-func (h Handle) SetRemoteFileSigLevel(siglevel SigLevel) error {
+func (h *Handle) SetRemoteFileSigLevel(siglevel SigLevel) error {
 	ok := C.alpm_option_set_remote_file_siglevel(h.ptr, C.int(siglevel))
 
 	if ok < 0 {

+ 35 - 45
vendor/github.com/jguer/go-alpm/package.go

@@ -93,180 +93,180 @@ func (l DependList) Slice() []Depend {
 	return slice
 }
 
-func (pkg Package) FileName() string {
+func (pkg *Package) FileName() string {
 	return C.GoString(C.alpm_pkg_get_filename(pkg.pmpkg))
 }
 
-func (pkg Package) Base() string {
+func (pkg *Package) Base() string {
 	return C.GoString(C.alpm_pkg_get_base(pkg.pmpkg))
 }
 
-func (pkg Package) Base64Signature() string {
+func (pkg *Package) Base64Signature() string {
 	return C.GoString(C.alpm_pkg_get_base64_sig(pkg.pmpkg))
 }
 
-func (pkg Package) Validation() Validation {
+func (pkg *Package) Validation() Validation {
 	return Validation(C.alpm_pkg_get_validation(pkg.pmpkg))
 }
 
 // Architecture returns the package target Architecture.
-func (pkg Package) Architecture() string {
+func (pkg *Package) Architecture() string {
 	return C.GoString(C.alpm_pkg_get_arch(pkg.pmpkg))
 }
 
-func (pkg Package) Deltas() StringList {
+func (pkg *Package) Deltas() StringList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_deltas(pkg.pmpkg))
 	return StringList{(*list)(ptr)}
 }
 
 // Backup returns a list of package backups.
-func (pkg Package) Backup() BackupList {
+func (pkg *Package) Backup() BackupList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_backup(pkg.pmpkg))
 	return BackupList{(*list)(ptr)}
 }
 
 // BuildDate returns the BuildDate of the package.
-func (pkg Package) BuildDate() time.Time {
+func (pkg *Package) BuildDate() time.Time {
 	t := C.alpm_pkg_get_builddate(pkg.pmpkg)
 	return time.Unix(int64(t), 0)
 }
 
 // Conflicts returns the conflicts of the package as a DependList.
-func (pkg Package) Conflicts() DependList {
+func (pkg *Package) Conflicts() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_conflicts(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // DB returns the package's origin database.
-func (pkg Package) DB() *Db {
+func (pkg *Package) DB() *DB {
 	ptr := C.alpm_pkg_get_db(pkg.pmpkg)
 	if ptr == nil {
 		return nil
 	}
-	return &Db{ptr, pkg.handle}
+	return &DB{ptr, pkg.handle}
 }
 
 // Depends returns the package's dependency list.
-func (pkg Package) Depends() DependList {
+func (pkg *Package) Depends() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_depends(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Depends returns the package's optional dependency list.
-func (pkg Package) OptionalDepends() DependList {
+func (pkg *Package) OptionalDepends() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_optdepends(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Depends returns the package's check dependency list.
-func (pkg Package) CheckDepends() DependList {
+func (pkg *Package) CheckDepends() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_checkdepends(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Depends returns the package's make dependency list.
-func (pkg Package) MakeDepends() DependList {
+func (pkg *Package) MakeDepends() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_makedepends(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Description returns the package's description.
-func (pkg Package) Description() string {
+func (pkg *Package) Description() string {
 	return C.GoString(C.alpm_pkg_get_desc(pkg.pmpkg))
 }
 
 // Files returns the file list of the package.
-func (pkg Package) Files() []File {
+func (pkg *Package) Files() []File {
 	cFiles := C.alpm_pkg_get_files(pkg.pmpkg)
 	return convertFilelist(cFiles)
 }
 
 // Groups returns the groups the package belongs to.
-func (pkg Package) Groups() StringList {
+func (pkg *Package) Groups() StringList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_groups(pkg.pmpkg))
 	return StringList{(*list)(ptr)}
 }
 
 // ISize returns the package installed size.
-func (pkg Package) ISize() int64 {
+func (pkg *Package) ISize() int64 {
 	t := C.alpm_pkg_get_isize(pkg.pmpkg)
 	return int64(t)
 }
 
 // InstallDate returns the package install date.
-func (pkg Package) InstallDate() time.Time {
+func (pkg *Package) InstallDate() time.Time {
 	t := C.alpm_pkg_get_installdate(pkg.pmpkg)
 	return time.Unix(int64(t), 0)
 }
 
 // Licenses returns the package license list.
-func (pkg Package) Licenses() StringList {
+func (pkg *Package) Licenses() StringList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_licenses(pkg.pmpkg))
 	return StringList{(*list)(ptr)}
 }
 
 // SHA256Sum returns package SHA256Sum.
-func (pkg Package) SHA256Sum() string {
+func (pkg *Package) SHA256Sum() string {
 	return C.GoString(C.alpm_pkg_get_sha256sum(pkg.pmpkg))
 }
 
 // MD5Sum returns package MD5Sum.
-func (pkg Package) MD5Sum() string {
+func (pkg *Package) MD5Sum() string {
 	return C.GoString(C.alpm_pkg_get_md5sum(pkg.pmpkg))
 }
 
 // Name returns package name.
-func (pkg Package) Name() string {
+func (pkg *Package) Name() string {
 	return C.GoString(C.alpm_pkg_get_name(pkg.pmpkg))
 }
 
 // Packager returns package packager name.
-func (pkg Package) Packager() string {
+func (pkg *Package) Packager() string {
 	return C.GoString(C.alpm_pkg_get_packager(pkg.pmpkg))
 }
 
 // Provides returns DependList of packages provides by package.
-func (pkg Package) Provides() DependList {
+func (pkg *Package) Provides() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_provides(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Reason returns package install reason.
-func (pkg Package) Reason() PkgReason {
+func (pkg *Package) Reason() PkgReason {
 	reason := C.alpm_pkg_get_reason(pkg.pmpkg)
 	return PkgReason(reason)
 }
 
 // Origin returns package origin.
-func (pkg Package) Origin() PkgFrom {
+func (pkg *Package) Origin() PkgFrom {
 	origin := C.alpm_pkg_get_origin(pkg.pmpkg)
 	return PkgFrom(origin)
 }
 
 // Replaces returns a DependList with the packages this package replaces.
-func (pkg Package) Replaces() DependList {
+func (pkg *Package) Replaces() DependList {
 	ptr := unsafe.Pointer(C.alpm_pkg_get_replaces(pkg.pmpkg))
 	return DependList{(*list)(ptr)}
 }
 
 // Size returns the packed package size.
-func (pkg Package) Size() int64 {
+func (pkg *Package) Size() int64 {
 	t := C.alpm_pkg_get_size(pkg.pmpkg)
 	return int64(t)
 }
 
 // URL returns the upstream URL of the package.
-func (pkg Package) URL() string {
+func (pkg *Package) URL() string {
 	return C.GoString(C.alpm_pkg_get_url(pkg.pmpkg))
 }
 
 // Version returns the package version.
-func (pkg Package) Version() string {
+func (pkg *Package) Version() string {
 	return C.GoString(C.alpm_pkg_get_version(pkg.pmpkg))
 }
 
 // ComputeRequiredBy returns the names of reverse dependencies of a package
-func (pkg Package) ComputeRequiredBy() []string {
+func (pkg *Package) ComputeRequiredBy() []string {
 	result := C.alpm_pkg_compute_requiredby(pkg.pmpkg)
 	requiredby := make([]string, 0)
 	for i := (*list)(unsafe.Pointer(result)); i != nil; i = i.Next {
@@ -281,7 +281,7 @@ func (pkg Package) ComputeRequiredBy() []string {
 }
 
 // ComputeOptionalFor returns the names of packages that optionally require the given package
-func (pkg Package) ComputeOptionalFor() []string {
+func (pkg *Package) ComputeOptionalFor() []string {
 	result := C.alpm_pkg_compute_optionalfor(pkg.pmpkg)
 	optionalfor := make([]string, 0)
 	for i := (*list)(unsafe.Pointer(result)); i != nil; i = i.Next {
@@ -295,17 +295,7 @@ func (pkg Package) ComputeOptionalFor() []string {
 	return optionalfor
 }
 
-// NewVersion checks if there is a new version of the package in the Synced DBs.
-func (pkg Package) NewVersion(l DbList) *Package {
-	ptr := C.alpm_sync_newversion(pkg.pmpkg,
-		(*C.alpm_list_t)(unsafe.Pointer(l.list)))
-	if ptr == nil {
-		return nil
-	}
-	return &Package{ptr, l.handle}
-}
-
-func (pkg Package) ShouldIgnore() bool {
+func (pkg *Package) ShouldIgnore() bool {
 	result := C.alpm_pkg_should_ignore(pkg.handle.ptr, pkg.pmpkg)
 	return result == 1
 }

+ 12 - 0
vendor/github.com/jguer/go-alpm/sync.go

@@ -11,6 +11,18 @@ package alpm
 */
 import "C"
 
+import "unsafe"
+
+// NewVersion checks if there is a new version of the package in a given DBlist.
+func (pkg *Package) SyncNewVersion(l DBList) *Package {
+	ptr := C.alpm_sync_newversion(pkg.pmpkg,
+		(*C.alpm_list_t)(unsafe.Pointer(l.list)))
+	if ptr == nil {
+		return nil
+	}
+	return &Package{ptr, l.handle}
+}
+
 func (h *Handle) SyncSysupgrade(enableDowngrade bool) error {
 	intEnableDowngrade := C.int(0)
 

+ 1 - 1
vendor/github.com/jguer/go-alpm/trans.go

@@ -43,7 +43,7 @@ func (h *Handle) TransGetRemove() PackageList {
 	return PackageList{(*list)(unsafe.Pointer(pkgs)), *h}
 }
 
-func (h *Handle) TransGetFalgs() (TransFlag, error) {
+func (h *Handle) TransGetFlags() (TransFlag, error) {
 	flags := C.alpm_trans_get_flags(h.ptr)
 
 	if flags == -1 {

+ 6 - 6
vendor/github.com/jguer/go-alpm/types.go

@@ -243,22 +243,22 @@ func (question QuestionReplace) Replace() bool {
 	return question.ptr.replace == 1
 }
 
-func (question QuestionReplace) NewPkg(h *Handle) Package {
-	return Package{
+func (question QuestionReplace) NewPkg(h *Handle) *Package {
+	return &Package{
 		question.ptr.newpkg,
 		*h,
 	}
 }
 
-func (question QuestionReplace) OldPkg(h *Handle) Package {
-	return Package{
+func (question QuestionReplace) OldPkg(h *Handle) *Package {
+	return &Package{
 		question.ptr.oldpkg,
 		*h,
 	}
 }
 
-func (question QuestionReplace) newDb(h *Handle) Db {
-	return Db{
+func (question QuestionReplace) newDB(h *Handle) *DB {
+	return &DB{
 		question.ptr.newdb,
 		*h,
 	}

+ 42 - 13
vendor/github.com/mikkeloscar/aur/aur.go

@@ -68,33 +68,62 @@ func get(values url.Values) ([]Pkg, error) {
 	return result.Results, nil
 }
 
-// Search searches for packages by package name.
-func Search(query string) ([]Pkg, error) {
+func searchBy(query, by string) ([]Pkg, error) {
 	v := url.Values{}
 	v.Set("type", "search")
 	v.Set("arg", query)
 
+	if by != "" {
+		v.Set("by", by)
+	}
+
 	return get(v)
 }
 
+// Search searches for packages by the RPC's default defautl field.
+// This is the same as SearchByNameDesc
+func Search(query string) ([]Pkg, error) {
+	return searchBy(query, "")
+}
+
+// Search searches for packages by package name.
+func SearchByName(query string) ([]Pkg, error) {
+	return searchBy(query, "name")
+}
+
 // SearchByNameDesc searches for package by package name and description.
 func SearchByNameDesc(query string) ([]Pkg, error) {
-	v := url.Values{}
-	v.Set("type", "search")
-	v.Set("by", "name-desc")
-	v.Set("arg", query)
-
-	return get(v)
+	return searchBy(query, "name-desc")
 }
 
 // SearchByMaintainer searches for package by maintainer.
 func SearchByMaintainer(query string) ([]Pkg, error) {
-	v := url.Values{}
-	v.Set("type", "search")
-	v.Set("by", "maintainer")
-	v.Set("arg", query)
+	return searchBy(query, "maintainer")
+}
 
-	return get(v)
+// SearchByDepends searches for packages that depend on query
+func SearchByDepends(query string) ([]Pkg, error) {
+	return searchBy(query, "depends")
+}
+
+// SearchByMakeDepends searches for packages that makedepend on query
+func SearchByMakeDepends(query string) ([]Pkg, error) {
+	return searchBy(query, "makedepends")
+}
+
+// SearchByOptDepends searches for packages that optdepend on query
+func SearchByOptDepends(query string) ([]Pkg, error) {
+	return searchBy(query, "optdepends")
+}
+
+// SearchByCheckDepends searches for packages that checkdepend on query
+func SearchByCheckDepends(query string) ([]Pkg, error) {
+	return searchBy(query, "checkdepends")
+}
+
+// Orphans returns all orphan packages in the AUR.
+func Orphans() ([]Pkg, error) {
+	return SearchByMaintainer("")
 }
 
 // Info shows info for one or multiple packages.

+ 2 - 2
vendor/modules.txt

@@ -3,7 +3,7 @@ github.com/Morganamilo/go-pacmanconf
 github.com/Morganamilo/go-pacmanconf/ini
 # github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5
 github.com/Morganamilo/go-srcinfo
-# github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5
+# github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0
 github.com/jguer/go-alpm
-# github.com/mikkeloscar/aur v0.0.0-20180725140122-f998dbf94dc4
+# github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9
 github.com/mikkeloscar/aur