PackageManager just because
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
706 B

  1. package Package
  2. import (
  3. "PackageManager/Archive"
  4. "PackageManager/Color"
  5. "errors"
  6. "fmt"
  7. "os"
  8. )
  9. func UninstallPackage(pkgs []string) error {
  10. var (
  11. pkgFiles []string
  12. pkg string
  13. f string
  14. e error
  15. )
  16. for _, pkg = range pkgs {
  17. _, e = os.Stat(pkg)
  18. if os.IsNotExist(e) {
  19. return errors.New(fmt.Sprintf("Invalid package %s", pkg))
  20. }
  21. }
  22. for _, pkg = range pkgs {
  23. fmt.Printf(
  24. "Uninstalling %s...\n",
  25. pkg,
  26. )
  27. pkgFiles, e = Archive.GetPackageFilePaths(pkg)
  28. if e != nil {
  29. return e
  30. }
  31. for _, f = range pkgFiles {
  32. e = os.Remove(f)
  33. if e != nil {
  34. return e
  35. }
  36. }
  37. fmt.Printf(
  38. Color.Green("%s uninstalled\n"),
  39. pkg,
  40. )
  41. }
  42. return nil
  43. }