Provide more accurate information in gentoo/simpleparser

Extract categories and such
This commit is contained in:
Ettore Di Giacinto
2019-10-31 12:36:32 +01:00
parent 66631f9af9
commit 190d4f0064

View File

@@ -63,7 +63,13 @@ func (ep *SimpleEbuildParser) ScanEbuild(path string, tree pkg.Tree) ([]pkg.Pack
} }
packageInfo := decodepackage.FindAllStringSubmatch(file, -1) v := strings.Replace(path, filepath.Base(file)+".ebuild", "", -1)
pName := filepath.Base(v)
cat := filepath.Base(strings.Replace(v, pName, "", -1))
packageInfo := decodepackage.FindAllStringSubmatch(filepath.Join(cat, file), -1)
if len(packageInfo) != 1 || len(packageInfo[0]) != 12 { if len(packageInfo) != 1 || len(packageInfo[0]) != 12 {
return []pkg.Package{}, errors.New("Failed decoding ebuild: " + path) return []pkg.Package{}, errors.New("Failed decoding ebuild: " + path)
} }
@@ -72,10 +78,10 @@ func (ep *SimpleEbuildParser) ScanEbuild(path string, tree pkg.Tree) ([]pkg.Pack
if err != nil { if err != nil {
// return []pkg.Package{}, err // return []pkg.Package{}, err
} }
fmt.Println("Scanning", path)
// TODO: Handle this a bit better // TODO: Handle this a bit better
//fmt.Println(vars)
pack := &pkg.DefaultPackage{Name: packageInfo[0][2], Version: packageInfo[0][7]} pack := &pkg.DefaultPackage{Name: packageInfo[0][5], Version: packageInfo[0][7], Category: cat}
rdepend, ok := vars["RDEPEND"] rdepend, ok := vars["RDEPEND"]
if ok { if ok {
rdepends := strings.Split(rdepend.String(), "\n") rdepends := strings.Split(rdepend.String(), "\n")
@@ -102,7 +108,7 @@ func (ep *SimpleEbuildParser) ScanEbuild(path string, tree pkg.Tree) ([]pkg.Pack
} }
//TODO: Resolve to db or create a new one. //TODO: Resolve to db or create a new one.
dep := &pkg.DefaultPackage{Name: deppackageInfo[0][2], Version: deppackageInfo[0][7]} dep := &pkg.DefaultPackage{Name: deppackageInfo[0][5], Version: deppackageInfo[0][7], Category: deppackageInfo[0][4]}
foundPackage, err := tree.GetPackageSet().FindPackage(dep) foundPackage, err := tree.GetPackageSet().FindPackage(dep)
if err != nil { if err != nil {
_, err := tree.GetPackageSet().CreatePackage(dep) _, err := tree.GetPackageSet().CreatePackage(dep)