1 | 'use strict';
|
2 | const TaskKitTask = require('taskkit-task');
|
3 |
|
4 | class HelpTask extends TaskKitTask {
|
5 | get description() {
|
6 | return 'Prints various help info about your tasks';
|
7 | }
|
8 |
|
9 |
|
10 | printTaskList(taskList, level) {
|
11 | let buffer = ' ';
|
12 | for (let i = 0; i < level; i++) {
|
13 | buffer = ` ${buffer}`;
|
14 | }
|
15 | if (!taskList.forEach) {
|
16 | this.log(`${buffer} - ${taskList}`);
|
17 | } else {
|
18 | taskList.forEach((subtask) => {
|
19 | this.printTaskList(subtask, level + 1);
|
20 | });
|
21 | }
|
22 | }
|
23 |
|
24 | execute() {
|
25 | this.log('Registered tasks: ');
|
26 | Object.keys(this.fullConfig.tasks).forEach((taskName) => {
|
27 | this.log(` ${taskName}`);
|
28 | });
|
29 | this.log('Named Task Sets:');
|
30 | Object.keys(this.fullConfig.tasks).forEach((taskName) => {
|
31 | const task = this.fullConfig.tasks[taskName];
|
32 | if (!task.forEach) {
|
33 | return;
|
34 | }
|
35 | this.log(` Task Set "${taskName}" has the following sub-tasks:`);
|
36 | this.printTaskList(task, 0);
|
37 | this.log('');
|
38 | });
|
39 | }
|
40 | }
|
41 | module.exports = HelpTask;
|