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.

55 lines
823 B

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