clean.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. }
  27. // CleanDependencies removes all dangling dependencies in system
  28. func cleanDependencies() error {
  29. hanging, err := hangingPackages()
  30. if err != nil {
  31. return err
  32. }
  33. if len(hanging) != 0 {
  34. if !continueTask("Confirm Removal?", "nN") {
  35. return nil
  36. }
  37. err = cleanRemove(hanging)
  38. }
  39. return err
  40. }
  41. // CleanRemove sends a full removal command to pacman with the pkgName slice
  42. func cleanRemove(pkgNames []string) (err error) {
  43. if len(pkgNames) == 0 {
  44. return nil
  45. }
  46. arguments := makeArguments()
  47. arguments.addArg("R", "s", "n", "s", "noconfirm")
  48. arguments.addTarget(pkgNames...)
  49. err = passToPacman(arguments)
  50. return err
  51. }