sfdx-experiences-plugin
Version:
SFDX plugin to manage ExperienceBundle metadata
59 lines • 2.72 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = require("@salesforce/command");
const core_1 = require("@salesforce/core");
const fs_1 = require("fs");
const copy_1 = require("../../../modules/experiences/config/copy");
const core_2 = require("../../../modules/experiences/utils/core");
core_1.Messages.importMessagesDirectory(__dirname);
const messages = core_1.Messages.loadMessages('sfdx-experiences-plugin', 'experiences-config-copy');
/**
* Command which copies configuration from one ExperienceBundle to another.
*/
class ExperiencesConfigCopy extends command_1.SfdxCommand {
async run() {
const config = this.flags.config;
const sourceBundlePath = core_2.getAbsolutePath(this.args.source);
const targetBundlePath = core_2.getAbsolutePath(this.args.target);
if (!config || config.length < 1) {
this.log(messages.getMessage('infoNoConfigToCopy'));
return {};
}
if (!fs_1.existsSync(sourceBundlePath)) {
throw new core_1.SfdxError(messages.getMessage('errorMissingSourcePath', [sourceBundlePath]));
}
if (!fs_1.existsSync(targetBundlePath)) {
throw new core_1.SfdxError(messages.getMessage('errorMissingTargetPath', [targetBundlePath]));
}
try {
copy_1.copyConfig(sourceBundlePath, targetBundlePath, config);
this.log(messages.getMessage('infoCopyFinished'));
return {};
}
catch (error) {
throw new core_1.SfdxError(messages.getMessage('errorFailedWithError', [error]));
}
}
}
exports.default = ExperiencesConfigCopy;
ExperiencesConfigCopy.description = messages.getMessage('commandDescription');
ExperiencesConfigCopy.examples = [
`$ sfdx experiences:config:copy -c preferredDomain,headMarkup ./source-app/main/default/experiences/Example1 ./target-app/main/default/experiences/Example2
Copies preferred domain and head markup from Example1 in source-app to Example2 in target-app.
`
];
ExperiencesConfigCopy.args = [
{ name: 'source', required: true, description: messages.getMessage('sourceArgDescription') },
{ name: 'target', required: true, description: messages.getMessage('targetArgDescription') }
];
ExperiencesConfigCopy.flagsConfig = {
config: command_1.flags.array({
char: 'c',
description: messages.getMessage('configFlagDescription'),
required: true
})
};
ExperiencesConfigCopy.requiresUsername = false;
ExperiencesConfigCopy.supportsDevhubUsername = false;
ExperiencesConfigCopy.requiresProject = false;
//# sourceMappingURL=copy.js.map
;