actions.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. aur "github.com/jguer/yay/aur"
  6. "github.com/jguer/yay/config"
  7. pac "github.com/jguer/yay/pacman"
  8. )
  9. // Install handles package installs
  10. func install(pkgs []string, flags []string) error {
  11. aurs, repos, _ := pac.PackageSlices(pkgs)
  12. if len(repos) != 0 {
  13. err := config.PassToPacman("-S", repos, flags)
  14. if err != nil {
  15. fmt.Println("Error installing repo packages.")
  16. }
  17. }
  18. if len(aurs) != 0 {
  19. err := aur.Install(aurs, flags)
  20. if err != nil {
  21. fmt.Println("Error installing aur packages.")
  22. }
  23. }
  24. return nil
  25. }
  26. // Upgrade handles updating the cache and installing updates.
  27. func upgrade(flags []string) error {
  28. errp := config.PassToPacman("-Syu", nil, flags)
  29. erra := aur.Upgrade(flags)
  30. if errp != nil {
  31. return errp
  32. }
  33. return erra
  34. }
  35. // CleanDependencies removels all dangling dependencies in system
  36. func cleanDependencies(pkgs []string) error {
  37. hanging, err := pac.HangingPackages()
  38. if err != nil {
  39. return err
  40. }
  41. if len(hanging) != 0 {
  42. if !config.ContinueTask("Confirm Removal?", "nN") {
  43. return nil
  44. }
  45. err = pac.CleanRemove(hanging)
  46. }
  47. return err
  48. }
  49. // GetPkgbuild gets the pkgbuild of the package 'pkg' trying the ABS first and then the AUR trying the ABS first and then the AUR.
  50. func getPkgbuild(pkg string) (err error) {
  51. wd, err := os.Getwd()
  52. if err != nil {
  53. return
  54. }
  55. wd = wd + "/"
  56. err = pac.GetPkgbuild(pkg, wd)
  57. if err == nil {
  58. return
  59. }
  60. err = aur.GetPkgbuild(pkg, wd)
  61. return
  62. }