clean.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package main
  2. // GetPkgbuild gets the pkgbuild of the package 'pkg' trying the ABS first and then the AUR trying the ABS first and then the AUR.
  3. // RemoveMakeDeps receives a make dependency list and removes those
  4. // that are no longer necessary.
  5. func removeMakeDeps(depS []string) (err error) {
  6. hanging := sliceHangingPackages(depS)
  7. if len(hanging) != 0 {
  8. if !continueTask("Confirm Removal?", "nN") {
  9. return nil
  10. }
  11. err = cleanRemove(hanging)
  12. }
  13. return
  14. }
  15. // RemovePackage removes package from VCS information
  16. func removeVCSPackage(pkgs []string) {
  17. for _, pkgName := range pkgs {
  18. for i, e := range savedInfo {
  19. if e.Package == pkgName {
  20. savedInfo[i] = savedInfo[len(savedInfo)-1]
  21. savedInfo = savedInfo[:len(savedInfo)-1]
  22. }
  23. }
  24. }
  25. _ = saveVCSInfo()
  26. return
  27. }
  28. // CleanDependencies removels all dangling dependencies in system
  29. func cleanDependencies(pkgs []string) error {
  30. hanging, err := hangingPackages()
  31. if err != nil {
  32. return err
  33. }
  34. if len(hanging) != 0 {
  35. if !continueTask("Confirm Removal?", "nN") {
  36. return nil
  37. }
  38. err = cleanRemove(hanging)
  39. }
  40. return err
  41. }
  42. // CleanRemove sends a full removal command to pacman with the pkgName slice
  43. func cleanRemove(pkgName []string) (err error) {
  44. if len(pkgName) == 0 {
  45. return nil
  46. }
  47. err = passToPacman("-Rsnc", pkgName, []string{"--noconfirm"})
  48. return err
  49. }