From d14eeeb0d8b3e09d8b19f1fcb2b395948708b074 Mon Sep 17 00:00:00 2001 From: Yosi Attias Date: Fri, 1 Apr 2016 17:44:58 +0300 Subject: [PATCH] Adding delete by glob --- services/task_store/service.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/services/task_store/service.go b/services/task_store/service.go index 6c866e70d3..a017e37a55 100644 --- a/services/task_store/service.go +++ b/services/task_store/service.go @@ -524,9 +524,9 @@ func (ts *Service) Save(task *rawTask) error { return err } -func (ts *Service) Delete(name string) error { - +func (ts *Service) deleteTask(name string) error { ts.TaskMaster.StopTask(name) + return ts.db.Update(func(tx *bolt.Tx) error { tb := tx.Bucket(tasksBucket) if tb != nil { @@ -544,6 +544,30 @@ func (ts *Service) Delete(name string) error { }) } +func (ts *Service) Delete(pattern string) error { + rawTasks, err := ts.FindTasks(func(taskName string) (bool, error) { + matched, err := filepath.Match(pattern, taskName) + if err != nil { + return false, err + } + + return matched, nil + }) + + if err != nil { + return nil + } + + for _, rawTask := range rawTasks { + err = ts.deleteTask(rawTask.Name) + if err != nil { + return err + } + } + + return nil +} + func (ts *Service) LoadRaw(name string) (*rawTask, error) { var data []byte err := ts.db.View(func(tx *bolt.Tx) error {