blob: 5183754844775b512c666176bf7cf26439433520 [file] [log] [blame]
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
}
config, err := LoadConfig(pkg)
if err != nil {
return err
}
for _, module := range 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
}