taskkit
Version:
42 lines (38 loc) • 1.1 kB
JavaScript
;
const TaskKitTask = require('taskkit-task');
class HelpTask extends TaskKitTask {
get description() {
return 'Prints various help info about your tasks';
}
// prints out a hierarchical set of tasks:
printTaskList(taskList, level) {
let buffer = ' ';
for (let i = 0; i < level; i++) {
buffer = ` ${buffer}`;
}
if (!taskList.forEach) {
this.log(`${buffer} - ${taskList}`);
} else {
taskList.forEach((subtask) => {
this.printTaskList(subtask, level + 1);
});
}
}
execute() {
this.log('Registered tasks: ');
Object.keys(this.fullConfig.tasks).forEach((taskName) => {
this.log(` ${taskName}`);
});
this.log('Named Task Sets:');
Object.keys(this.fullConfig.tasks).forEach((taskName) => {
const task = this.fullConfig.tasks[taskName];
if (!task.forEach) {
return;
}
this.log(` Task Set "${taskName}" has the following sub-tasks:`);
this.printTaskList(task, 0);
this.log(''); // <-- blank line for clarity
});
}
}
module.exports = HelpTask;