Ejemplo n.º 1
0
// BuildPkgInfo produces information about a package.
func BuildPkgInfo(pkgname, dbname string) (resp []byte, er error) {
	alpmHandleLock.Lock()
	defer alpmHandleLock.Unlock()

	var (
		pkg *alpm.Package
		db  *alpm.Db
	)
	h := getAlpm()
	switch dbname {
	case "", "local":
		dbname = "local"
		db, er = h.LocalDb()
	default:
		db, er = h.SyncDbByName(dbname)
	}
	if er != nil {
		return
	}

	pkg, er = db.PkgByName(pkgname)
	if er != nil {
		return
	}

	s, er := Execute("pkginfo", CommonData{}, map[string]interface{}{
		"Package": pkg,
		"Repo":    dbname,
	})
	return s, er
}