Implement uninstall

Also add RemovePackage in database implementation (boltdb is not tested yet)

Add test case for uninstall
This commit is contained in:
Ettore Di Giacinto
2019-11-24 00:16:12 +01:00
parent 0d7b2cf448
commit a8b350fd8e
6 changed files with 97 additions and 2 deletions

View File

@@ -224,3 +224,16 @@ func (db *BoltDatabase) RemovePackageFiles(p Package) error {
}
return files.DeleteStruct(&pf)
}
func (db *BoltDatabase) RemovePackage(p Package) error {
bolt, err := storm.Open(db.Path, storm.BoltOptions(0600, &bbolt.Options{Timeout: 30 * time.Second}))
if err != nil {
return errors.Wrap(err, "Error opening boltdb "+db.Path)
}
defer bolt.Close()
p, err = db.FindPackage(p)
if err != nil {
return errors.Wrap(err, "No package found")
}
return bolt.DeleteStruct(p)
}