@dlillyatx/dc-cli
Version:
Dynamic Content CLI Tool
75 lines (74 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExtensionCloneStep = void 0;
const clone_hub_step_1 = require("../model/clone-hub-step");
const path_1 = require("path");
const export_1 = require("../../extension/export");
const import_1 = require("../../extension/import");
const fs_1 = require("fs");
class ExtensionCloneStep {
getId() {
return clone_hub_step_1.CloneHubStepId.Extension;
}
getName() {
return 'Clone Extensions';
}
async run(state) {
try {
state.logFile.appendLine(`Exporting existing extensions from destination.`);
await export_1.handler({
dir: path_1.join(state.path, 'oldExtension'),
force: true,
logFile: state.logFile,
...state.to
});
}
catch (e) {
state.logFile.appendLine(`ERROR: Could not export existing extensions. \n${e}`);
return false;
}
try {
state.logFile.appendLine(`Exporting extensions from source.`);
await export_1.handler({
dir: path_1.join(state.path, 'extension'),
force: true,
logFile: state.logFile,
...state.from
});
}
catch (e) {
state.logFile.appendLine(`ERROR: Could not export extensions. \n${e}`);
return false;
}
try {
await import_1.handler({
dir: path_1.join(state.path, 'extension'),
logFile: state.logFile,
...state.to
});
}
catch (e) {
state.logFile.appendLine(`ERROR: Could not import extensions. \n${e}`);
return false;
}
return true;
}
async revert(state) {
const toUpdate = state.revertLog.getData('UPDATE', this.getName());
if (toUpdate.length > 0 && fs_1.existsSync(path_1.join(state.path, 'oldExtension'))) {
try {
await import_1.handler({
dir: path_1.join(state.path, 'oldExtension'),
logFile: state.logFile,
...state.to
}, toUpdate.map(item => item.split(' ')[0]));
}
catch (e) {
state.logFile.appendLine(`ERROR: Could not import old extensions. \n${e}`);
return false;
}
}
return true;
}
}
exports.ExtensionCloneStep = ExtensionCloneStep;