1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00
joplin/packages/app-cli/app/command-cp.ts

38 lines
1.2 KiB
TypeScript
Raw Normal View History

import BaseCommand from './base-command';
2024-01-20 16:29:21 +02:00
import app from './app';
import { _ } from '@joplin/lib/locale';
import BaseModel from '@joplin/lib/BaseModel';
import Note from '@joplin/lib/models/Note';
2017-07-11 20:17:23 +02:00
class Command extends BaseCommand {
public override usage() {
2017-08-04 19:51:01 +02:00
return 'cp <note> [notebook]';
2017-07-11 20:17:23 +02:00
}
public override description() {
2017-08-04 19:51:01 +02:00
return _('Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.');
2017-07-11 20:17:23 +02:00
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied
public override async action(args: any) {
2017-07-11 20:17:23 +02:00
let folder = null;
if (args['notebook']) {
folder = await app().loadItem(BaseModel.TYPE_FOLDER, args['notebook']);
} else {
folder = app().currentFolder();
}
2017-07-18 20:21:03 +02:00
if (!folder) throw new Error(_('Cannot find "%s".', args['notebook']));
2017-07-11 20:17:23 +02:00
2017-08-04 19:51:01 +02:00
const notes = await app().loadItems(BaseModel.TYPE_NOTE, args['note']);
if (!notes.length) throw new Error(_('Cannot find "%s".', args['note']));
2017-07-11 20:17:23 +02:00
for (let i = 0; i < notes.length; i++) {
2017-07-15 17:35:40 +02:00
const newNote = await Note.copyToFolder(notes[i].id, folder.id);
void Note.updateGeolocation(newNote.id);
2017-07-11 20:17:23 +02:00
}
}
}
module.exports = Command;