File tree Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Original file line number Diff line number Diff line change @@ -461,15 +461,24 @@ export async function renderProject(
461461 // remove directories, we should instead make a function that
462462 // does that explicitly, rather than as a side effect of a missing
463463 // src Dir
464- if ( existsSync ( srcDir ) ) {
465- if ( existsSync ( targetDir ) ) {
466- Deno . removeSync ( targetDir , { recursive : true } ) ;
467- }
468- ensureDirSync ( dirname ( targetDir ) ) ;
469- if ( copy ) {
470- copyTo ( srcDir , targetDir ) ;
471- } else {
464+ if ( ! existsSync ( srcDir ) ) {
465+ return ;
466+ }
467+ if ( existsSync ( targetDir ) ) {
468+ Deno . removeSync ( targetDir , { recursive : true } ) ;
469+ }
470+ ensureDirSync ( dirname ( targetDir ) ) ;
471+ if ( copy ) {
472+ copyTo ( srcDir , targetDir ) ;
473+ } else {
474+ try {
472475 Deno . renameSync ( srcDir , targetDir ) ;
476+ } catch ( _e ) {
477+ // if renaming failed, it could have happened
478+ // because src and target are in different file systems.
479+ // In that case, try to recursively copy from src
480+ copyTo ( srcDir , targetDir ) ;
481+ Deno . removeSync ( srcDir , { recursive : true } ) ;
473482 }
474483 }
475484 } ;
You can’t perform that action at this time.
0 commit comments