vcs.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package main
  2. import (
  3. "sync"
  4. "github.com/leonelquinteros/gotext"
  5. "github.com/Jguer/yay/v10/pkg/db"
  6. "github.com/Jguer/yay/v10/pkg/dep"
  7. "github.com/Jguer/yay/v10/pkg/query"
  8. "github.com/Jguer/yay/v10/pkg/settings"
  9. "github.com/Jguer/yay/v10/pkg/stringset"
  10. "github.com/Jguer/yay/v10/pkg/text"
  11. )
  12. // createDevelDB forces yay to create a DB of the existing development packages
  13. func createDevelDB(config *settings.Configuration, dbExecutor db.Executor) error {
  14. var mux sync.Mutex
  15. var wg sync.WaitGroup
  16. _, remoteNames, err := query.GetPackageNamesBySource(dbExecutor)
  17. if err != nil {
  18. return err
  19. }
  20. info, err := query.AURInfoPrint(config.Runtime.AURClient, remoteNames, config.RequestSplitN)
  21. if err != nil {
  22. return err
  23. }
  24. bases := dep.GetBases(info)
  25. toSkip := pkgbuildsToSkip(bases, stringset.FromSlice(remoteNames))
  26. _, err = downloadPkgbuilds(bases, toSkip, config.BuildDir)
  27. if err != nil {
  28. return err
  29. }
  30. srcinfos, err := parseSrcinfoFiles(bases, false)
  31. if err != nil {
  32. return err
  33. }
  34. for i := range srcinfos {
  35. for iP := range srcinfos[i].Packages {
  36. wg.Add(1)
  37. go config.Runtime.VCSStore.Update(srcinfos[i].Packages[iP].Pkgname, srcinfos[i].Source, &mux, &wg)
  38. }
  39. }
  40. wg.Wait()
  41. text.OperationInfoln(gotext.Get("GenDB finished. No packages were installed"))
  42. return err
  43. }