@@ -0,0 +1,55 @@ | |||
Patches | |||
======= | |||
This directory contains patches to be used by any script which uses function `call_patches` from `patches_utils.sh`. | |||
Patches are files with extension `.sh`. Name of the patch is the name of the file without extension (so name of patch "debug.sh" is "debug"). | |||
Patches run in the same directory as the calling script provided `patches_utils.sh` has been sourced in the calling script. | |||
Patches are passed on to `start.sh` script using command line argument `-p` by their name. | |||
More than one can be specified using comma as separator. | |||
Each patch is invoked with one argument: | |||
* `SQ_HOME`: path to the home of the started SQ instance | |||
To enable custom patches not part of this directory, set the environment variable `SONARQUBE_USER_PATCHES_HOME` to the directory of the scripts. | |||
If a script with the same name exists in *this* directory and under your custom script directory, | |||
the one in the custom script directory will be used. | |||
Example scripts | |||
--------------- | |||
### Debug | |||
#!/usr/bin/env bash | |||
# | |||
# sets property sonar.web.javaAdditionalOpts in sonar.properties to activate debug | |||
# | |||
set -euo pipefail | |||
source scripts/property_utils.sh | |||
SQ_HOME=$1 | |||
echo "enabling debug in conf/sonar.properties, listening on port 5005" | |||
set_property sonar.web.javaAdditionalOpts -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 "$SQ_HOME/conf/sonar.properties" | |||
### Views | |||
#!/usr/bin/env bash | |||
# | |||
# copies the sonar-views plugin jar to the extension directory | |||
# | |||
set -euo pipefail | |||
source scripts/property_utils.sh | |||
SQ_HOME=$1 | |||
VIEWS_FILE=~/DEV/views/target/sonar-views-plugin-2.9-SNAPSHOT.jar | |||
EXT_DIR=$SQ_HOME/extensions/plugins | |||
cp -v "$VIEWS_FILE" "$EXT_DIR" |
@@ -1,52 +0,0 @@ | |||
This directory contains patches to be used by the any script which use function call_patches from patches_utils.sh. | |||
Patches are files with extension ".sh". Name of the patch is the name of the file without extension (so name of patch "debug.sh" is "debug"). | |||
Patches run in the same directory as the calling script provided patches_utils.sh as been sourced in the calling script. | |||
Patches are passed on to start.sh script using command line argument "-p" by their name. | |||
More than one can be specified using a colon. | |||
Each patch is invoked with one argument: | |||
* SQ_HOME: the path to the home of the started SQ instance | |||
************************************************************************************************************************ | |||
sample and common scripts are provided below | |||
************************************************************************************************************************ | |||
****************************************** start of debug.sh ****************************************** | |||
#!/bin/bash | |||
############################### | |||
# sets property sonar.web.javaAdditionalOpts in sonar.properties to activate debug | |||
############################### | |||
set -euo pipefail | |||
source scripts/property_utils.sh | |||
SQ_HOME=$1 | |||
echo "enabling debug in conf/sonar.properties, listening on port 5005" | |||
set_property sonar.web.javaAdditionalOpts -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 $SQ_HOME/conf/sonar.properties | |||
****************************************** end of debug.sh ****************************************** | |||
****************************************** start of views.sh ****************************************** | |||
#!/bin/bash | |||
############################### | |||
# copies the sonar-views plugin jar to the extension directory | |||
############################### | |||
set -euo pipefail | |||
source scripts/property_utils.sh | |||
SQ_HOME=$1 | |||
VIEWS_FILE=~/DEV/views/target/sonar-views-plugin-2.9-SNAPSHOT.jar | |||
EXT_DIR=$SQ_HOME/extensions/plugins/ | |||
echo "copy $VIEWS_FILE to $EXT_DIR" | |||
cp $VIEWS_FILE $EXT_DIR | |||
****************************************** end of views.sh ****************************************** |
@@ -1,29 +1,40 @@ | |||
#!/bin/bash | |||
############################### | |||
# exposes library functions to modify properties in a property | |||
############################### | |||
#!/usr/bin/env bash | |||
set -euo pipefail | |||
PATCHES_HOME=scripts/patches | |||
USER_PATCHES_HOME= | |||
# $1: name(s) of patches to call, separated by a colon | |||
# all other arguments are passed as is to the patches | |||
function call_patches() { | |||
local PATCHES=$1 | |||
local ARGS=${@:2} | |||
local savedIFS=$IFS | |||
if [ "${SONARQUBE_USER_PATCHES_HOME+x}" ]; then | |||
USER_PATCHES_HOME=$SONARQUBE_USER_PATCHES_HOME | |||
fi | |||
# $1: name(s) of patches to call, separated by comma(s) | |||
# $2: path to SonarQube installation | |||
call_patches() { | |||
local patches=$1 | |||
local sq_home=$2 | |||
local patch script | |||
local IFS=, | |||
IFS=',' | |||
for PATCH in $PATCHES; do | |||
#echo "calling $PATCHES_HOME/$PATCH.sh $ARGS" | |||
echo "" | |||
echo "******** $PATCH *******" | |||
$PATCHES_HOME/$PATCH.sh $ARGS | |||
for patch in $patches; do | |||
echo | |||
echo "******** $patch *******" | |||
if [ "$USER_PATCHES_HOME" -a -x "$USER_PATCHES_HOME/$patch.sh" ]; then | |||
script=$USER_PATCHES_HOME/$patch.sh | |||
elif [ -x "$PATCHES_HOME/$patch.sh" ]; then | |||
script=$PATCHES_HOME/$patch.sh | |||
elif [ "$USER_PATCHES_HOME" ]; then | |||
echo "Patch $patch is not an executable script in $PATCHES_HOME or $USER_PATCHES_HOME" | |||
return 1 | |||
else | |||
echo "Patch $patch is not an executable script in $PATCHES_HOME" | |||
return 1 | |||
fi | |||
"$script" "$sq_home" | |||
done | |||
IFS=$savedIFS | |||
echo "" | |||
echo | |||
} | |||