Skip to content
Prev Previous commit
Next Next commit
Run regenerate media for each import
  • Loading branch information
sejas committed Oct 11, 2024
commit 79f03bf273ebe2ffe052f535cddeb4a344244af0
26 changes: 14 additions & 12 deletions src/lib/import-export/import/importers/importer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ abstract class BaseImporter extends EventEmitter implements Importer {
}

abstract class BaseBackupImporter extends BaseImporter {
protected async afterImport?( siteId: string ): Promise< void >;
async import( rootPath: string, siteId: string ): Promise< ImporterResult > {
this.emit( ImportEvents.IMPORT_START );

Expand All @@ -138,7 +137,7 @@ abstract class BaseBackupImporter extends BaseImporter {
this.meta = await this.parseMetaFile();
}
await this.importDatabase( rootPath, siteId, this.backup.sqlFiles );
await this.afterImport?.( siteId );
await this.regenerateMedia( siteId );

this.emit( ImportEvents.IMPORT_COMPLETE );
return {
Expand All @@ -157,6 +156,19 @@ abstract class BaseBackupImporter extends BaseImporter {

protected abstract parseMetaFile(): Promise< MetaFileData | undefined >;

protected async regenerateMedia( siteId: string ): Promise< void > {
const server = SiteServer.get( siteId );
if ( ! server ) {
throw new Error( 'Site not found.' );
}
this.emit( ImportEvents.IMPORT_MEDIA_REGENERATE_START );
const { stderr } = await server.executeWpCliCommand( 'media regenerate --yes' );
if ( stderr ) {
console.error( 'Error during media regeneration:', stderr );
}
this.emit( ImportEvents.IMPORT_MEDIA_REGENERATE_COMPLETE );
}

protected async createEmptyDatabase( dbPath: string ): Promise< void > {
await fsPromises.writeFile( dbPath, '' );
}
Expand Down Expand Up @@ -240,16 +252,6 @@ export class JetpackImporter extends BaseBackupImporter {
this.emit( ImportEvents.IMPORT_META_COMPLETE );
}
}

protected async afterImport( siteId: string ) {
const server = SiteServer.get( siteId );
if ( ! server ) {
throw new Error( 'Site not found.' );
}
this.emit( ImportEvents.IMPORT_MEDIA_REGENERATE_START );
await server.executeWpCliCommand( 'media regenerate --yes' );
this.emit( ImportEvents.IMPORT_MEDIA_REGENERATE_COMPLETE );
}
}

export class LocalImporter extends BaseBackupImporter {
Expand Down