浏览代码

Merge pull request #318 from ZenixTheHusky/Fix#310

Skip SRCINFOs that cannot be parsed during gendb
Morgana 7 年之前
父节点
当前提交
c8f6145a18
共有 2 个文件被更改,包括 22 次插入2 次删除
  1. 17 0
      install.go
  2. 5 2
      vcs.go

+ 17 - 0
install.go

@@ -492,6 +492,23 @@ func parseSRCINFOFiles(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bas
 	return nil
 }
 
+func tryParsesrcinfosFile(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) {
+	for k, pkg := range pkgs {
+		dir := config.BuildDir + pkg.PackageBase + "/"
+
+		str := bold(cyan("::") + " Parsing SRCINFO (%d/%d): %s\n")
+		fmt.Printf(str, k+1, len(pkgs), formatPkgbase(pkg, bases))
+
+		pkgbuild, err := gopkg.ParseSRCINFO(dir + ".SRCINFO")
+		if err != nil {
+			fmt.Printf("cannot parse %s skipping: %s\n", pkg.Name, err)
+			continue
+		}
+
+		srcinfos[pkg.PackageBase] = pkgbuild
+	}
+}
+
 func parseSRCINFOGenerate(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, bases map[string][]*rpc.Pkg) error {
 	for k, pkg := range pkgs {
 		dir := config.BuildDir + pkg.PackageBase + "/"

+ 5 - 2
vcs.go

@@ -44,10 +44,13 @@ func createDevelDB() error {
 	bases := getBases(infoMap)
 
 	downloadPkgBuilds(info, sliceToStringSet(remoteNames), bases)
-	err = parseSRCINFOFiles(info, srcinfosStale, bases)
+	tryParsesrcinfosFile(info, srcinfosStale, bases)
 
 	for _, pkg := range info {
-		pkgbuild := srcinfosStale[pkg.PackageBase]
+		pkgbuild, ok := srcinfosStale[pkg.PackageBase]
+		if !ok {
+			continue
+		}
 
 		for _, pkg := range bases[pkg.PackageBase] {
 			updateVCSData(pkg.Name, pkgbuild.Source)