[gnome-ostree] task: Make TaskAfter work again



commit ffcfe0455c3faafa98312ec3be8539c2bf27f736
Author: Colin Walters <walters verbum org>
Date:   Sun Jun 16 17:32:35 2013 -0400

    task: Make TaskAfter work again

 src/js/task.js |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/src/js/task.js b/src/js/task.js
index bf2f331..d64d3c6 100644
--- a/src/js/task.js
+++ b/src/js/task.js
@@ -90,6 +90,23 @@ const TaskSet = new Lang.Class({
        if (!_tasksetInstance)
            _tasksetInstance = new TaskSet();
        return _tasksetInstance;
+    },
+
+    getTasksAfter: function(taskName) {
+       let ret = [];
+       for (let i = 0; i < this._tasks.length; i++) {
+           let taskConstructor = this._tasks[i];
+           let taskDef = Params.parse(taskConstructor.prototype.TaskDef, DefaultTaskDef);
+           let after = taskDef.TaskAfter;
+           for (let j = 0; j < after.length; j++) {
+               let a = after[j];
+               if (a == taskName) {
+                   ret.push(taskDef.TaskName);
+                   break;
+               }
+           }
+       }
+       return ret;
     }
 });
 
@@ -263,11 +280,13 @@ const TaskMaster = new Lang.Class({
        this.emit('task-complete', runner, success, error);
        if (success && this._processAfter) {
            if (runner.changed) {
+               let taskName = runner.taskData.name;
                let taskDef = runner.taskData.taskDef;
-               for (let i = 0; i < taskDef.TasksAfter.length; i++) {
-                   let taskName = taskDef.TasksAfter[i];
-                   if (!this._skipTasks[taskName])
-                       this.pushTaskDef(taskName, {});
+               let after = this._taskset.getTasksAfter(taskName);
+               for (let i = 0; i < after.length; i++) {
+                   let afterTaskName = after[i];
+                   if (!this._skipTasks[afterTaskName])
+                       this.pushTask(afterTaskName, {});
                }
            }
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]