aboutsummaryrefslogtreecommitdiffstats
path: root/lib/pama/delete.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pama/delete.go')
-rw-r--r--lib/pama/delete.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/pama/delete.go b/lib/pama/delete.go
index 18a93a27..53dbeeb1 100644
--- a/lib/pama/delete.go
+++ b/lib/pama/delete.go
@@ -1,6 +1,10 @@
package pama
-import "fmt"
+import (
+ "fmt"
+
+ "git.sr.ht/~rjarry/aerc/log"
+)
// Delete removes provided project
func (m PatchManager) Delete(name string) error {
@@ -21,8 +25,8 @@ func (m PatchManager) Delete(name string) error {
return fmt.Errorf("Project '%s' not found", name)
}
- cur, err := m.CurrentProject()
- if err == nil && cur.Name == name {
+ cur, err := store.CurrentName()
+ if err == nil && cur == name {
var next string
for _, s := range names {
if name != s {
@@ -36,6 +40,18 @@ func (m PatchManager) Delete(name string) error {
}
}
+ p, err := store.Project(name)
+ if err == nil && isWorktree(p) {
+ err = m.deleteWorktree(p)
+ if err != nil {
+ log.Errorf("failed to delete worktree: %v", err)
+ }
+ err = store.SetCurrent(p.Worktree.Name)
+ if err != nil {
+ log.Errorf("failed to set current project: %v", err)
+ }
+ }
+
return storeErr(m.store().DeleteProject(name))
}