@@ -665,7 +665,7 @@ export function devTool (
665
665
cmd . region ,
666
666
5000 , // 5 gigabytes per blob
667
667
sharedPipelineContextVars ,
668
- true ,
668
+ true , // Do full check
669
669
async ( storage , workspaceStorage ) => {
670
670
if ( cmd . remove ) {
671
671
await updateArchiveInfo ( toolCtx , db , ws . workspace , true )
@@ -781,12 +781,14 @@ export function devTool (
781
781
. option ( '--region [region]' , 'Force backup of selected workspace' , '' )
782
782
. option ( '--full' , 'Full recheck' , false )
783
783
. option ( '-w|--workspace [workspace]' , 'Force backup of selected workspace' , '' )
784
- . action ( async ( cmd : { workspace : string , region : string , full : boolean } ) => {
784
+ . option ( '-s|--skip [skip]' , 'A command separated list of workspaces to skip' , '' )
785
+ . action ( async ( cmd : { workspace : string , region : string , full : boolean , skip : string } ) => {
785
786
const { txes } = prepareTools ( )
787
+ const skipped = new Set ( cmd . skip . split ( ',' ) . map ( ( it ) => it . trim ( ) ) )
786
788
await withAccountDatabase ( async ( db ) => {
787
789
const workspaces = ( await listWorkspacesPure ( db ) )
788
790
. sort ( ( a , b ) => a . lastVisit - b . lastVisit )
789
- . filter ( ( it ) => cmd . workspace === '' || cmd . workspace === it . workspace )
791
+ . filter ( ( it ) => ( cmd . workspace === '' || cmd . workspace === it . workspace ) && ! skipped . has ( it . workspace ) )
790
792
791
793
let processed = 0
792
794
@@ -819,7 +821,11 @@ export function devTool (
819
821
processed ++
820
822
}
821
823
} catch ( err : any ) {
822
- toolCtx . error ( 'Failed to backup workspace' , { workspace : ws . workspace } )
824
+ toolCtx . error ( 'Failed to backup workspace' , {
825
+ workspace : ws . workspace ,
826
+ err : err . message ,
827
+ errStack : err . stack
828
+ } )
823
829
}
824
830
}
825
831
console . log ( 'Processed workspaces' , processed )
0 commit comments