UNPKG

1.07 kBJavaScriptView Raw
1//--------------------------------------------------------
2//-- Task
3//--------------------------------------------------------
4'use strict';
5
6const __ = require('@absolunet/private-registry');
7const { terminal } = require('@absolunet/terminal');
8const paths = require('~/helpers/paths');
9
10
11class Task {
12
13 /* eslint-disable no-unused-vars */
14 set filename(filename) {
15 __(this).set('filename', filename);
16 }
17
18
19 set deprecate(message) {
20 __(this).set('deprecated', message);
21 }
22
23
24 get bin() {
25 if (__(this).get('filename')) {
26 return __(this).get('filename').split(`${paths.workflow.cliTasks}/`)[1].split('.js')[0].replace('/', ':');
27 }
28
29 throw new Error('Filename not defined by subclass');
30 }
31
32
33 cli(meowCli) {
34 if (__(this).get('deprecated')) {
35 terminal.spacer();
36 terminal.warning(`DEPRECATED - ${__(this).get('deprecated')}`);
37 terminal.exit();
38 }
39
40 throw new Error('Not overwritten by subclass');
41 }
42
43
44 run(options) {
45 throw new Error('Not overwritten by subclass');
46 }
47 /* eslint-enable no-unused-vars */
48
49}
50
51
52module.exports = Task;