UNPKG

1.11 kBJavaScriptView Raw
1const { l10n, print, Database } = require('../..');
2
3exports.command = 'remove [SID...]';
4
5exports.aliases = ['rm'];
6
7exports.desc = l10n('CMD_RM_DESC');
8
9exports.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
34exports.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};