@facets-cloud/facetsctlv3
Version:
67 lines (66 loc) • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const artifact_service_1 = require("../../services/artifact-service");
class Init extends core_1.Command {
static description = 'Initialize artifact information';
static examples = [
`$ facetsctl artifact init --project my-project --service my-service --artifactory my-artifactory
Created artifact-info.facets.yaml
`
];
static flags = {
project: core_1.Flags.string({
char: 'p',
description: 'Project name',
required: true,
}),
service: core_1.Flags.string({
char: 's',
description: 'Service name',
exclusive: ['ci-integration'],
}),
"ci-integration": core_1.Flags.string({
char: 'c',
description: 'CI Integration Name',
exclusive: ['service'],
}),
artifactory: core_1.Flags.string({
char: 'a',
description: 'Artifactory name',
required: true,
}),
};
async run() {
const { flags } = await this.parse(Init);
const project = flags.project;
const service = flags.service;
const artifactory = flags.artifactory;
const ciIntegration = flags?.['ci-integration'];
if (!project || !artifactory || (!service && !ciIntegration)) {
this.error('Project and artifactory and (service or ci-integration) are required.');
}
const artifactInfo = {
projectName: project,
serviceName: service,
ciIntegrationName: ciIntegration,
artifactoryName: artifactory,
};
core_1.ux.action.start('Creating artifact-info.facets.yaml');
try {
artifact_service_1.ArtifactService.writeArtifactInfo(artifactInfo);
core_1.ux.action.stop('File created successfully');
}
catch (error) {
core_1.ux.action.stop('Failed to create file');
if (error instanceof Error) {
this.error(`Failed to create ${artifact_service_1.ArtifactService.getArtifactFilePath()}: ${error.message}`);
}
else {
this.error(`Failed to create ${artifact_service_1.ArtifactService.getArtifactFilePath()}: ${String(error)}`);
}
}
this.log(`Created ${artifact_service_1.ArtifactService.getArtifactFilePath()}`);
}
}
exports.default = Init;