diff options
Diffstat (limited to 'lib/pama/delete.go')
-rw-r--r-- | lib/pama/delete.go | 22 |
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)) } |