| package dkms |
| |
| import ( |
| "fmt" |
| "github.com/golang/glog" |
| "os" |
| ) |
| |
| // Uninstall removes all of the installed modules of a DKMS package from the |
| // install tree. |
| func Uninstall(pkg *Package) error { |
| if !IsInstalled(pkg) { |
| glog.Info("module is not installed; skipping removal from install tree") |
| return nil |
| } |
| |
| for _, module := range pkg.Config.Modules { |
| destModulePath := module.DestPath() |
| glog.Info("removing installed module", destModulePath) |
| if err := os.Remove(destModulePath); err != nil { |
| if os.IsNotExist(err) { |
| glog.Warningf("could not find module at %s", destModulePath, pkg.Name) |
| } else { |
| return fmt.Errorf("error removing module %s", destModulePath) |
| } |
| } |
| } |
| |
| return nil |
| } |