diff --git a/install.go b/install.go index e01d225f..967077e7 100644 --- a/install.go +++ b/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 + "/" diff --git a/vcs.go b/vcs.go index 02bcb05d..293ede12 100644 --- a/vcs.go +++ b/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)