Add USER_PATCHES_HOME support and minor quality improvements (#2815)
This commit is contained in:
parent
da41cff1d4
commit
be37450079
|
|
@ -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
|
||||
done
|
||||
IFS=$savedIFS
|
||||
for patch in $patches; do
|
||||
echo
|
||||
echo "******** $patch *******"
|
||||
|
||||
echo ""
|
||||
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
|
||||
|
||||
echo
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue