UNPKG

@villedemontreal/scripting

Version:
49 lines 2.2 kB
"use strict"; 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