diff --git a/remove.go b/remove.go index 211b3a9..ce2160f 100644 --- a/remove.go +++ b/remove.go @@ -22,6 +22,7 @@ func removeMap(conn net.Conn, instance string, objmap map[string]interface{}) er } func remove(conn net.Conn, instance string, program string, keep_data bool) error { + package_path, err := filepath.Abs(filepath.Join(instance, "apps", program)) if err != nil { return err @@ -29,6 +30,7 @@ func remove(conn net.Conn, instance string, program string, keep_data bool) erro if exists, err := path_exists(package_path); !exists || err != nil { return errors.New("package not found") } + err = os.RemoveAll(package_path) if err != nil { return err @@ -41,5 +43,13 @@ func remove(conn net.Conn, instance string, program string, keep_data bool) erro } } + desktop_path, err := filepath.Abs(filepath.Join(instance, "exec", "desktop", program+".desktop")) + if exists, err := path_exists(desktop_path); exists && err == nil { + err = os.Remove(desktop_path) + if err != nil { + return err + } + } + return nil }