Add a script to sync sonar properties
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 11 Jun 2022 06:28:29 +0000 (08:28 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 11 Jun 2022 06:28:29 +0000 (08:28 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
.gitignore
package.json
sonar-project.properties
updateSonarProps.sh [new file with mode: 0755]

index 8ddca4bea480b8dfb25dcd55fc9a35cce5820184..8cf99a8db82658edd4a2ccfa610cfdddb5738464 100644 (file)
@@ -57,3 +57,4 @@ build/config.gypi
 .history/
 .scannerwork
 lib
+*.bak
index 5e921e8c5e4e125798fd0d1139282e1799fef782..5012ac2a68189addaf62093fa693ea6dcf62ded2 100644 (file)
@@ -19,6 +19,7 @@
     "lint": "eslint . --cache",
     "lint:fix": "eslint . --cache --fix",
     "typedoc": "typedoc",
+    "sonar:properties": "./updateSonarProps.sh",
     "prepublishOnly": "npm run build:prod"
   },
   "repository": {
index fbb18042522fbbccadf382c0d458d00d1c61b298..4907570edb1eb9bba03115d62796d7588736c83e 100644 (file)
@@ -2,7 +2,7 @@ sonar.projectKey=pioardi_poolifier
 sonar.organization=pioardi
 sonar.javascript.lcov.reportPaths=coverage/lcov.info
 sonar.projectName=poolifier
-sonar.projectVersion=2.0.0
+sonar.projectVersion=2.2.0
 sonar.host.url=https://sonarcloud.io
 sonar.sources=src
 sonar.tests=tests
diff --git a/updateSonarProps.sh b/updateSonarProps.sh
new file mode 100755 (executable)
index 0000000..d29ed6a
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+#title          : updateSonarProps.sh
+#description    :
+# This script parses the project's name and version from its package.json and automagically
+# updates the version and package name in the SonarQube configuration properties file.
+# It can be used as a pre step before running the sonar-scanner command
+#
+#prerequisites  : NodeJS based project with package.json, sonar*.properties file in the cwd
+#author         : Christian-André Giehl <christian@emailbrief.de>
+#modified by    : Daniel Duarte <danieldd.ar@gmail.com>
+#date           : 20180220
+#version        : 1.1
+#usage          : sh updateSonarProps.sh
+#==============================================================================
+echo "Updating the SonarQube properties..."
+
+# Get the project name from package.json
+PACKAGE_NAME=$(cat package.json \
+  | grep name \
+  | head -1 \
+  | awk -F: '{ print $2 }' \
+  | sed 's/[",]//g' \
+  | tr -d '[[:space:]]')
+echo "Project: ${PACKAGE_NAME}"
+
+# Get the version from package.json
+PACKAGE_VERSION=$(cat package.json \
+  | grep version \
+  | head -1 \
+  | awk -F: '{ print $2 }' \
+  | sed 's/[",]//g' \
+  | tr -d '[[:space:]]')
+echo "Version: ${PACKAGE_VERSION}"
+
+# Get the Sonar properties file
+SONAR_FILE=$(find . -iname sonar*.properties -type f)
+echo "Sonar file: ${SONAR_FILE}"
+
+SED_EXTRA_OPTS="-i.bak"
+
+# Update the version
+REPLACE='^sonar.projectVersion=.*$'
+WITH="sonar.projectVersion=${PACKAGE_VERSION}"
+sed $SED_EXTRA_OPTS -e "s/${REPLACE}/${WITH}/g" ${SONAR_FILE}
+
+# Update the project name
+REPLACE='^sonar.projectName=.*$'
+WITH="sonar.projectName=${PACKAGE_NAME}"
+sed $SED_EXTRA_OPTS -e "s/${REPLACE}/${WITH}/g" ${SONAR_FILE}