fix: ignore disabled workspaces in sync-files tool (#6701)

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
This commit is contained in:
Alexander Onnikov 2024-09-24 14:34:19 +07:00 committed by GitHub
parent d849a5da1f
commit 9d5fe507d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1139,7 +1139,8 @@ export function devTool (
.option('-m, --move <move>', 'When set to true, the files will be moved, otherwise copied', 'false') .option('-m, --move <move>', 'When set to true, the files will be moved, otherwise copied', 'false')
.option('-bl, --blobLimit <blobLimit>', 'A blob size limit in megabytes (default 50mb)', '50') .option('-bl, --blobLimit <blobLimit>', 'A blob size limit in megabytes (default 50mb)', '50')
.option('-c, --concurrency <concurrency>', 'Number of files being processed concurrently', '10') .option('-c, --concurrency <concurrency>', 'Number of files being processed concurrently', '10')
.action(async (cmd: { workspace: string, move: string, blobLimit: string, concurrency: string }) => { .option('--disabled', 'Include disabled workspaces', false)
.action(async (cmd: { workspace: string, move: string, blobLimit: string, concurrency: string, disabled: boolean }) => {
const params = { const params = {
blobSizeLimitMb: parseInt(cmd.blobLimit), blobSizeLimitMb: parseInt(cmd.blobLimit),
concurrency: parseInt(cmd.concurrency), concurrency: parseInt(cmd.concurrency),
@ -1165,6 +1166,10 @@ export function devTool (
if (cmd.workspace !== '' && workspace.workspace !== cmd.workspace) { if (cmd.workspace !== '' && workspace.workspace !== cmd.workspace) {
continue continue
} }
if (workspace.disabled === true && !cmd.disabled) {
console.log('ignore disabled workspace', workspace.workspace)
continue
}
console.log('start', workspace.workspace, index, '/', workspaces.length) console.log('start', workspace.workspace, index, '/', workspaces.length)
await moveFiles(toolCtx, getWorkspaceId(workspace.workspace), exAdapter, params) await moveFiles(toolCtx, getWorkspaceId(workspace.workspace), exAdapter, params)
@ -1182,7 +1187,8 @@ export function devTool (
program program
.command('sync-files') .command('sync-files')
.option('-w, --workspace <workspace>', 'Selected workspace only', '') .option('-w, --workspace <workspace>', 'Selected workspace only', '')
.action(async (cmd: { workspace: string }) => { .option('--disabled', 'Include disabled workspaces', false)
.action(async (cmd: { workspace: string, disabled: boolean }) => {
const { mongodbUri } = prepareTools() const { mongodbUri } = prepareTools()
await withDatabase(mongodbUri, async (db) => { await withDatabase(mongodbUri, async (db) => {
await withStorage(mongodbUri, async (adapter) => { await withStorage(mongodbUri, async (adapter) => {
@ -1196,13 +1202,22 @@ export function devTool (
workspaces.sort((a, b) => b.lastVisit - a.lastVisit) workspaces.sort((a, b) => b.lastVisit - a.lastVisit)
for (const workspace of workspaces) { for (const workspace of workspaces) {
if (workspace.disabled === true && !cmd.disabled) {
console.log('ignore disabled workspace', workspace.workspace)
continue
}
if (cmd.workspace !== '' && workspace.workspace !== cmd.workspace) { if (cmd.workspace !== '' && workspace.workspace !== cmd.workspace) {
continue continue
} }
console.log('start', workspace.workspace, index, '/', workspaces.length) try {
await syncFiles(toolCtx, getWorkspaceId(workspace.workspace), exAdapter) console.log('start', workspace.workspace, index, '/', workspaces.length)
console.log('done', workspace.workspace) await syncFiles(toolCtx, getWorkspaceId(workspace.workspace), exAdapter)
console.log('done', workspace.workspace)
} catch (err) {
console.warn('failed to sync files', err)
}
index += 1 index += 1
} }