clean.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. // RemovePackage removes package from VCS information
  4. func removeVCSPackage(pkgs []string) {
  5. for _, pkgName := range pkgs {
  6. for i, e := range savedInfo {
  7. if e.Package == pkgName {
  8. savedInfo[i] = savedInfo[len(savedInfo)-1]
  9. savedInfo = savedInfo[:len(savedInfo)-1]
  10. }
  11. }
  12. }
  13. _ = saveVCSInfo()
  14. }
  15. // CleanDependencies removes all dangling dependencies in system
  16. func cleanDependencies() error {
  17. hanging, err := hangingPackages()
  18. if err != nil {
  19. return err
  20. }
  21. if len(hanging) != 0 {
  22. if !continueTask("Confirm Removal?", "nN") {
  23. return nil
  24. }
  25. err = cleanRemove(hanging)
  26. }
  27. return err
  28. }
  29. // CleanRemove sends a full removal command to pacman with the pkgName slice
  30. func cleanRemove(pkgNames []string) (err error) {
  31. if len(pkgNames) == 0 {
  32. return nil
  33. }
  34. oldvalue := config.NoConfirm
  35. config.NoConfirm = true
  36. arguments := makeArguments()
  37. arguments.addArg("R")
  38. arguments.addTarget(pkgNames...)
  39. err = passToPacman(arguments)
  40. config.NoConfirm = oldvalue
  41. return err
  42. }