clean.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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(pkgs []string) 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(pkgName []string) (err error) {
  43. if len(pkgName) == 0 {
  44. return nil
  45. }
  46. err = passToPacman("-Rsnc", pkgName, []string{"--noconfirm"})
  47. return err
  48. }