@villedemontreal/scripting
Version:
Scripting core utilities
49 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SonarInitScript = void 0;
const path = require("path");
const url_1 = require("url");
const sonar_1 = require("./sonar");
const sonarBase_1 = require("./sonarBase");
class SonarInitScript extends sonarBase_1.SonarBaseScript {
get name() {
return 'sonar-init';
}
get description() {
return 'Initializes Sonar project and creates "master" and "develop" long-lived sonar branches.';
}
async main() {
const { sonarHostUrl, sonarProjectKey } = this.getSonarProjectInformation();
this.logScriptStart(sonarProjectKey);
if (await this.sonarProjectAlreadyExists(sonarProjectKey, sonarHostUrl)) {
this.logSonarInitSkip(sonarProjectKey, sonarHostUrl);
}
else {
await this.initSonarProject();
this.logSonarInitSuccess(sonarProjectKey, sonarHostUrl);
}
}
async initSonarProject() {
await this.invokeShellCommand(sonar_1.SONAR_SCANNER, []);
await this.invokeShellCommand(sonar_1.SONAR_SCANNER, ['-Dsonar.branch.name=develop']);
}
logScriptStart(sonarProjectKey) {
this.logger.info(`Initializing '${sonarProjectKey}' Sonar project...`);
}
logSonarInitSuccess(sonarProjectKey, sonarHostUrl) {
const sonarProjectUrl = this.buildSonarProjectUrl(sonarProjectKey, sonarHostUrl);
this.logger.info(`'${sonarProjectKey}' Sonar project successfully initialized, and available at ${sonarProjectUrl}`);
}
logSonarInitSkip(sonarProjectKey, sonarHostUrl) {
const sonarProjectUrl = this.buildSonarProjectUrl(sonarProjectKey, sonarHostUrl);
this.logger.warn(`'${sonarProjectKey}' Sonar project already exists at ${sonarProjectUrl} ! Skipping sonar initialization...`);
}
buildSonarProjectUrl(sonarProjectKey, sonarHostUrl) {
const projectUrl = new url_1.URL(sonarHostUrl);
projectUrl.pathname = path.join(projectUrl.pathname, 'dashboard');
projectUrl.search = `?id=${sonarProjectKey}`;
return projectUrl;
}
}
exports.SonarInitScript = SonarInitScript;
//# sourceMappingURL=sonarInit.js.map