-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathindex.js
More file actions
151 lines (114 loc) · 5.45 KB
/
index.js
File metadata and controls
151 lines (114 loc) · 5.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
'use strict';
require('babel-polyfill');
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _updateNotifier = require('update-notifier');
var _updateNotifier2 = _interopRequireDefault(_updateNotifier);
var _configstore = require('configstore');
var _configstore2 = _interopRequireDefault(_configstore);
var _package = require('../package.json');
var _package2 = _interopRequireDefault(_package);
var _Manager = require('./core/Manager');
var _Manager2 = _interopRequireDefault(_Manager);
var _utils = require('./core/utils');
var _output = require('./core/output');
var _autocomplete = require('./autocomplete');
var _autocomplete2 = _interopRequireDefault(_autocomplete);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var config = new _configstore2.default(_package2.default.name, {
tasks: {},
config: {
'format.output': 'DD/MM'
}
});
(0, _updateNotifier2.default)({ pkg: _package2.default }).notify();
var manager = new _Manager2.default(config);
(0, _autocomplete2.default)(config);
//Exec
var EXEC = false;
_commander2.default.version(_package2.default.version).description('Tiny time tracker for projects').option('--updateDB', 'Bool to update the db');
_commander2.default.command('start <task_key> [description]').description('Start task with a description.').alias('s').action(function (key, description) {
description = description ? Array.isArray(description) ? description.join(' ') : description : null;
manager.startTask(key, description);
EXEC = true;
});
_commander2.default.command('pause <task_key>').description('Pause task').alias('p').action(function (key) {
manager.pauseTask(key);
EXEC = true;
});
_commander2.default.command('unpause <task_key>').description('Unpause task').alias('up').action(function (key) {
manager.unpauseTask(key);
EXEC = true;
});
_commander2.default.command('finish <task_key> [description]').description('Stop task, you can add a description').alias('f').action(function (key, description) {
description = description ? Array.isArray(description) ? description.join(' ') : description : null;
manager.stopTask(key, description);
EXEC = true;
});
_commander2.default.command('description <task_key> <descriptionText...>').description('Add description to your task.').alias('d').action(function (key, text) {
text = Array.isArray(text) ? text.join(' ') : text;
manager.addDescription(key, text);
EXEC = true;
});
_commander2.default.command('add <task_key> <stringTime>').description('Adds time to a task. Example: "1h2m3s"').action(function (key, stringTime) {
manager.modifyTask('add', key, stringTime);
manager.sumarize(key, manager.search(key), false);
EXEC = true;
});
_commander2.default.command('subtract <task_key> <stringTime>').description('Subtract time to a task. Example: "1h2m3s"').alias('sub').action(function (key, stringTime) {
manager.modifyTask('subtract', key, stringTime);
manager.sumarize(key, manager.search(key), false);
EXEC = true;
});
_commander2.default.command('report [task_string] [rate]').description('Report time of the tasks, empty for select all tasks. Can pass a rate (1h).').alias('r').action(function (tasks, rate) {
tasks = tasks ? tasks : 'all';
manager.sumarize(tasks, rate);
EXEC = true;
});
_commander2.default.command('log <task_key>').description('Logs the time of the task').alias('l').action(function (key) {
setInterval(function () {
var text = (0, _output.outputVertical)('Task:', key, (0, _utils.humanParseDiff)(manager.getTime(key)));
process.stdout.write(text);
process.stdout.moveCursor(0, -2);
}, 1000);
EXEC = true;
});
_commander2.default.command('export [task_string]').description('Export the tasks in json (default) or md format').alias('e').option('-f --format [format]').option('-s --start [start date. Example: "2017/05/28"]').option('-e --end [end date. Example: "2018/05/28"]').option('-x --expanded [You want to see all timings for a task.]').action(function (key, options) {
switch (options.format ? options.format.toLowerCase() : undefined) {
case 'json':
case undefined:
console.log(JSON.stringify(manager.getTasksJson(key, options.start, options.end), null, 4));
break;
case 'markdown':
case 'md':
console.log(manager.getTasksMd(key, options.start, options.end, options.expanded));
break;
default:
console.log('Format not supported');
}
EXEC = true;
});
_commander2.default.command('delete [task_string]').description('Remove tasks from the list. Empty for select all tasks').alias('del').action(function (string) {
string = string ? string : 'all';
manager.delete(string);
EXEC = true;
});
_commander2.default.command('configure <key> <value>').description('Configure the value of the config passing a key').action(function (key, value) {
manager.configure(key, value);
EXEC = true;
});
_commander2.default.command('configuration').description('Output configuration').action(function (string) {
(0, _output.outputConfig)(manager.getConfig());
EXEC = true;
});
_commander2.default.parse(process.argv);
if (_commander2.default.updateDB) {
manager.update();
EXEC = true;
}
if (!EXEC) {
(0, _output.cliError)('You must use a valid command.');
_commander2.default.outputHelp();
process.exit(1);
}
//# sourceMappingURL=index.js.map