1 | const { l10n, print, Database } = require('../..');
|
2 |
|
3 | exports.command = 'remove [SID...]';
|
4 |
|
5 | exports.aliases = ['rm'];
|
6 |
|
7 | exports.desc = l10n('CMD_RM_DESC');
|
8 |
|
9 | exports.builder = (yargs) => {
|
10 | yargs
|
11 | .usage(l10n('CMD_RM_USAGE'))
|
12 | .options({
|
13 | 'a': {
|
14 | alias: 'all',
|
15 | describe: l10n('CMD_RM_OPT_A'),
|
16 | type: 'boolean',
|
17 | },
|
18 | })
|
19 | .check((argv) => {
|
20 | if (!argv.SID && !argv.all) {
|
21 | throw new Error(l10n('CMD_RM_OPT_NO_A_NO_SID'));
|
22 | }
|
23 | return true;
|
24 | })
|
25 | .fail((msg, err) => {
|
26 | yargs.showHelp();
|
27 | console.log();
|
28 | print.error(msg);
|
29 | process.exit(1);
|
30 | })
|
31 | .example('dmhy rm AAA', l10n('CMD_RM_EXAMPLE1_DESC'));
|
32 | };
|
33 |
|
34 | exports.handler = (argv) => {
|
35 | const db = new Database();
|
36 |
|
37 | const sids = (argv.all) ? db.subscriptions.map((sub) => sub.sid) : argv.SID;
|
38 | sids.forEach((sid) => {
|
39 | const removed = db.remove(sid);
|
40 | if (removed) {
|
41 | print.success(l10n('CMD_RM_REMOVE_SUCCESS', { title: removed.title }));
|
42 | } else {
|
43 | print.error(l10n('CMD_RM_SID_NOT_FOUND', { sid }));
|
44 | }
|
45 | });
|
46 |
|
47 | db.save();
|
48 | process.exit(0);
|
49 | };
|