mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-04 20:29:09 +01:00
development/sonarqube: Added (quality management platform).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
4102f79449
commit
799321b435
6 changed files with 755 additions and 0 deletions
17
development/sonarqube/README
Normal file
17
development/sonarqube/README
Normal file
|
@ -0,0 +1,17 @@
|
|||
SonarQube software (previously called Sonar) is an open source quality
|
||||
management platform, dedicated to continuously analyze and measure technical
|
||||
quality, from project portfolio to method.
|
||||
|
||||
To create the MariaDB SonarQube database run:
|
||||
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
|
||||
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
|
||||
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
|
||||
FLUSH PRIVILEGES;
|
||||
Then start the service
|
||||
/etc/rc.d/rc.sonarqube start
|
||||
Then point your browser to
|
||||
http://localhost:9000/sonarqube/
|
||||
Then login as:
|
||||
user: admin
|
||||
password: admin
|
24
development/sonarqube/doinst.sh
Normal file
24
development/sonarqube/doinst.sh
Normal file
|
@ -0,0 +1,24 @@
|
|||
config() {
|
||||
NEW="$1"
|
||||
OLD="$(dirname $NEW)/$(basename $NEW .new)"
|
||||
if [ ! -r $OLD ]; then
|
||||
mv $NEW $OLD
|
||||
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
|
||||
rm $NEW
|
||||
fi
|
||||
}
|
||||
|
||||
preserve_perms() {
|
||||
NEW="$1"
|
||||
OLD="$(dirname $NEW)/$(basename $NEW .new)"
|
||||
if [ -e $OLD ]; then
|
||||
cp -a $OLD ${NEW}.incoming
|
||||
cat $NEW > ${NEW}.incoming
|
||||
mv ${NEW}.incoming $NEW
|
||||
fi
|
||||
config $NEW
|
||||
}
|
||||
|
||||
preserve_perms etc/rc.d/rc.sonarqube.new
|
||||
config usr/share/sonarqube/conf/sonar.properties.new
|
||||
config usr/share/sonarqube/conf/wrapper.conf.new
|
564
development/sonarqube/rc.sonarqube
Normal file
564
development/sonarqube/rc.sonarqube
Normal file
|
@ -0,0 +1,564 @@
|
|||
#! /bin/sh
|
||||
|
||||
#
|
||||
# Copyright (c) 1999, 2006 Tanuki Software Inc.
|
||||
#
|
||||
# Java Service Wrapper sh script. Suitable for starting and stopping
|
||||
# wrapped Java applications on UNIX platforms.
|
||||
#
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# These settings can be modified to fit the needs of your application
|
||||
|
||||
# Default values for the Application variables, below.
|
||||
#
|
||||
# NOTE: The build for specific applications may override this during the resource-copying
|
||||
# phase, to fill in a concrete name and avoid the use of the defaults specified here.
|
||||
DEF_APP_NAME="SonarQube"
|
||||
DEF_APP_LONG_NAME="SonarQube"
|
||||
|
||||
# Application
|
||||
APP_NAME="${DEF_APP_NAME}"
|
||||
APP_LONG_NAME="${DEF_APP_LONG_NAME}"
|
||||
|
||||
# Wrapper
|
||||
WRAPPER_CMD="./wrapper"
|
||||
WRAPPER_CONF="/etc/sonarqube/wrapper.conf"
|
||||
|
||||
# Priority at which to run the wrapper. See "man nice" for valid priorities.
|
||||
# nice is only used if a priority is specified.
|
||||
PRIORITY=
|
||||
|
||||
# Location of the pid file.
|
||||
PIDDIR="/var/run/sonarqube"
|
||||
|
||||
# If uncommented, causes the Wrapper to be shutdown using an anchor file.
|
||||
# When launched with the 'start' command, it will also ignore all INT and
|
||||
# TERM signals.
|
||||
#IGNORE_SIGNALS=true
|
||||
|
||||
# If specified, the Wrapper will be run as the specified user.
|
||||
# IMPORTANT - Make sure that the user has the required privileges to write
|
||||
# the PID file and wrapper.log files. Failure to be able to write the log
|
||||
# file will cause the Wrapper to exit without any way to write out an error
|
||||
# message.
|
||||
# NOTE - This will set the user which is used to run the Wrapper as well as
|
||||
# the JVM and is not useful in situations where a privileged resource or
|
||||
# port needs to be allocated prior to the user being changed.
|
||||
RUN_AS_USER=sonar
|
||||
|
||||
# The following two lines are used by the chkconfig command. Change as is
|
||||
# appropriate for your application. They should remain commented.
|
||||
# chkconfig: 2345 20 80
|
||||
# description: Test Wrapper Sample Application
|
||||
|
||||
# Do not modify anything beyond this point
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# Get the fully qualified path to the script
|
||||
case $0 in
|
||||
/*)
|
||||
SCRIPT="$0"
|
||||
;;
|
||||
*)
|
||||
PWD=`pwd`
|
||||
SCRIPT="$PWD/$0"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Resolve the true real path without any sym links.
|
||||
CHANGED=true
|
||||
while [ "X$CHANGED" != "X" ]
|
||||
do
|
||||
# Change spaces to ":" so the tokens can be parsed.
|
||||
SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
|
||||
# Get the real path to this script, resolving any symbolic links
|
||||
TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
|
||||
REALPATH=
|
||||
for C in $TOKENS; do
|
||||
# Change any ":" in the token back to a space.
|
||||
C=`echo $C | sed -e 's;:; ;g'`
|
||||
REALPATH="$REALPATH/$C"
|
||||
# If REALPATH is a sym link, resolve it. Loop for nested links.
|
||||
while [ -h "$REALPATH" ] ; do
|
||||
LS="`ls -ld "$REALPATH"`"
|
||||
LINK="`expr "$LS" : '.*-> \(.*\)$'`"
|
||||
if expr "$LINK" : '/.*' > /dev/null; then
|
||||
# LINK is absolute.
|
||||
REALPATH="$LINK"
|
||||
else
|
||||
# LINK is relative.
|
||||
REALPATH="`dirname "$REALPATH"`""/$LINK"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if [ "$REALPATH" = "$SCRIPT" ]
|
||||
then
|
||||
CHANGED=""
|
||||
else
|
||||
SCRIPT="$REALPATH"
|
||||
fi
|
||||
done
|
||||
|
||||
# Change the current directory to the location of the script
|
||||
cd "`dirname "$REALPATH"`"
|
||||
REALDIR=`pwd`
|
||||
|
||||
# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
|
||||
# the working directory is later changed.
|
||||
FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
PIDDIR=$REALDIR/$PIDDIR
|
||||
fi
|
||||
# Same test for WRAPPER_CMD
|
||||
FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
|
||||
fi
|
||||
# Same test for WRAPPER_CONF
|
||||
FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
|
||||
fi
|
||||
|
||||
# Process ID
|
||||
ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
|
||||
PIDFILE="$PIDDIR/$APP_NAME.pid"
|
||||
LOCKDIR="/var/lock/subsys"
|
||||
LOCKFILE="$LOCKDIR/$APP_NAME"
|
||||
pid=""
|
||||
|
||||
# Resolve the location of the 'ps' command
|
||||
PSEXE="/usr/bin/ps"
|
||||
if [ ! -x "$PSEXE" ]
|
||||
then
|
||||
PSEXE="/bin/ps"
|
||||
if [ ! -x "$PSEXE" ]
|
||||
then
|
||||
echo "Unable to locate 'ps'."
|
||||
echo "Please report this message along with the location of the command on your system."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Resolve the os
|
||||
DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
case "$DIST_OS" in
|
||||
'sunos')
|
||||
DIST_OS="solaris"
|
||||
;;
|
||||
'hp-ux' | 'hp-ux64')
|
||||
DIST_OS="hpux"
|
||||
;;
|
||||
'darwin')
|
||||
DIST_OS="macosx"
|
||||
;;
|
||||
'unix_sv')
|
||||
DIST_OS="unixware"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Resolve the architecture
|
||||
DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
if [ "$DIST_ARCH" = "unknown" ]
|
||||
then
|
||||
DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
fi
|
||||
case "$DIST_ARCH" in
|
||||
'amd64' | 'athlon' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
|
||||
DIST_ARCH="x86"
|
||||
;;
|
||||
'ip27')
|
||||
DIST_ARCH="mips"
|
||||
;;
|
||||
'power' | 'powerpc' | 'power_pc' | 'ppc64')
|
||||
DIST_ARCH="ppc"
|
||||
;;
|
||||
'pa_risc' | 'pa-risc')
|
||||
DIST_ARCH="parisc"
|
||||
;;
|
||||
'sun4u' | 'sparcv9')
|
||||
DIST_ARCH="sparc"
|
||||
;;
|
||||
'9000/800')
|
||||
DIST_ARCH="parisc"
|
||||
;;
|
||||
esac
|
||||
|
||||
outputFile() {
|
||||
if [ -f "$1" ]
|
||||
then
|
||||
echo " $1 (Found but not executable.)";
|
||||
else
|
||||
echo " $1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Decide on the wrapper binary to use.
|
||||
# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
|
||||
# platforms, if the 64-bit binary exists then the distribution most
|
||||
# likely wants to use long names. Otherwise, look for the default.
|
||||
# For macosx, we also want to look for universal binaries.
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
if [ -x "$WRAPPER_TEST_CMD" ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ "$DIST_OS" = "macosx" ]
|
||||
then
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
|
||||
if [ -x "$WRAPPER_TEST_CMD" ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
if [ -x "$WRAPPER_TEST_CMD" ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
|
||||
if [ -x "$WRAPPER_TEST_CMD" ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ ! -x "$WRAPPER_CMD" ]
|
||||
then
|
||||
echo "Unable to locate any of the following binaries:"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-universal-32"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-universal-64"
|
||||
outputFile "$WRAPPER_CMD"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
if [ -x "$WRAPPER_TEST_CMD" ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ ! -x "$WRAPPER_CMD" ]
|
||||
then
|
||||
echo "Unable to locate any of the following binaries:"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
outputFile "$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
outputFile "$WRAPPER_CMD"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Build the nice clause
|
||||
if [ "X$PRIORITY" = "X" ]
|
||||
then
|
||||
CMDNICE=""
|
||||
else
|
||||
CMDNICE="nice -$PRIORITY"
|
||||
fi
|
||||
|
||||
# Build the anchor file clause.
|
||||
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||
then
|
||||
ANCHORPROP=
|
||||
IGNOREPROP=
|
||||
else
|
||||
ANCHORPROP=wrapper.anchorfile=\"$ANCHORFILE\"
|
||||
IGNOREPROP=wrapper.ignore_signals=TRUE
|
||||
fi
|
||||
|
||||
# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
|
||||
LOCKPROP=
|
||||
if [ -d $LOCKDIR ]
|
||||
then
|
||||
if [ -w $LOCKDIR ]
|
||||
then
|
||||
LOCKPROP=wrapper.lockfile=\"$LOCKFILE\"
|
||||
fi
|
||||
fi
|
||||
|
||||
checkUser() {
|
||||
# $1 touchLock flag
|
||||
# $2 command
|
||||
|
||||
# Check the configured user. If necessary rerun this script as the desired user.
|
||||
if [ "X$RUN_AS_USER" != "X" ]
|
||||
then
|
||||
# Resolve the location of the 'id' command
|
||||
IDEXE="/usr/xpg4/bin/id"
|
||||
if [ ! -x "$IDEXE" ]
|
||||
then
|
||||
IDEXE="/usr/bin/id"
|
||||
if [ ! -x "$IDEXE" ]
|
||||
then
|
||||
echo "Unable to locate 'id'."
|
||||
echo "Please report this message along with the location of the command on your system."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
|
||||
then
|
||||
# Already running as the configured user. Avoid password prompts by not calling su.
|
||||
RUN_AS_USER=""
|
||||
fi
|
||||
fi
|
||||
if [ "X$RUN_AS_USER" != "X" ]
|
||||
then
|
||||
# If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
|
||||
# able to create the lock file. The Wrapper will be able to update this file once it
|
||||
# is created but will not be able to delete it on shutdown. If $2 is defined then
|
||||
# the lock file should be created for the current command
|
||||
if [ "X$LOCKPROP" != "X" ]
|
||||
then
|
||||
if [ "X$1" != "X" ]
|
||||
then
|
||||
# Resolve the primary group
|
||||
RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
|
||||
if [ "X$RUN_AS_GROUP" = "X" ]
|
||||
then
|
||||
RUN_AS_GROUP=$RUN_AS_USER
|
||||
fi
|
||||
touch $LOCKFILE
|
||||
chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
|
||||
fi
|
||||
fi
|
||||
|
||||
# Still want to change users, recurse. This means that the user will only be
|
||||
# prompted for a password once. Variables shifted by 1
|
||||
su -m $RUN_AS_USER -c "\"$REALPATH\" $2"
|
||||
RETVAL=$?
|
||||
|
||||
# Now that we are the original user again, we may need to clean up the lock file.
|
||||
if [ "X$LOCKPROP" != "X" ]
|
||||
then
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# Wrapper is not running so make sure the lock file is deleted.
|
||||
if [ -f "$LOCKFILE" ]
|
||||
then
|
||||
rm "$LOCKFILE"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $RETVAL
|
||||
fi
|
||||
}
|
||||
|
||||
getpid() {
|
||||
if [ -f "$PIDFILE" ]
|
||||
then
|
||||
if [ -r "$PIDFILE" ]
|
||||
then
|
||||
pid=`cat "$PIDFILE"`
|
||||
if [ "X$pid" != "X" ]
|
||||
then
|
||||
# It is possible that 'a' process with the pid exists but that it is not the
|
||||
# correct process. This can happen in a number of cases, but the most
|
||||
# common is during system startup after an unclean shutdown.
|
||||
# The ps statement below looks for the specific wrapper command running as
|
||||
# the pid. If it is not found then the pid file is considered to be stale.
|
||||
pidtest=`$PSEXE -p $pid -o args | grep "$WRAPPER_CMD" | tail -1`
|
||||
if [ "X$pidtest" = "X" ]
|
||||
then
|
||||
# This is a stale pid file.
|
||||
rm -f "$PIDFILE"
|
||||
echo "Removed stale pid file: $PIDFILE"
|
||||
pid=""
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Cannot read $PIDFILE."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
testpid() {
|
||||
pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# Process is gone so remove the pid file.
|
||||
rm -f "$PIDFILE"
|
||||
pid=""
|
||||
fi
|
||||
}
|
||||
|
||||
console() {
|
||||
echo "Running $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# The string passed to eval must handles spaces in paths correctly.
|
||||
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP"
|
||||
eval $COMMAND_LINE
|
||||
else
|
||||
echo "$APP_LONG_NAME is already running."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
echo "Starting $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# The string passed to eval must handles spaces in paths correctly.
|
||||
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
|
||||
eval $COMMAND_LINE
|
||||
else
|
||||
echo "$APP_LONG_NAME is already running."
|
||||
exit 1
|
||||
fi
|
||||
getpid
|
||||
if [ "X$pid" != "X" ]
|
||||
then
|
||||
echo "Started $APP_LONG_NAME."
|
||||
else
|
||||
echo "Failed to start $APP_LONG_NAME."
|
||||
fi
|
||||
}
|
||||
|
||||
stopit() {
|
||||
echo "Stopping $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME was not running."
|
||||
else
|
||||
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||
then
|
||||
# Running so try to stop it.
|
||||
kill $pid
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
# An explanation for the failure should have been given
|
||||
echo "Unable to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
rm -f "$ANCHORFILE"
|
||||
if [ -f "$ANCHORFILE" ]
|
||||
then
|
||||
# An explanation for the failure should have been given
|
||||
echo "Unable to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# We can not predict how long it will take for the wrapper to
|
||||
# actually stop as it depends on settings in wrapper.conf.
|
||||
# Loop until it does.
|
||||
savepid=$pid
|
||||
CNT=0
|
||||
TOTCNT=0
|
||||
while [ "X$pid" != "X" ]
|
||||
do
|
||||
# Show a waiting message every 5 seconds.
|
||||
if [ "$CNT" -lt "5" ]
|
||||
then
|
||||
CNT=`expr $CNT + 1`
|
||||
else
|
||||
echo "Waiting for $APP_LONG_NAME to exit..."
|
||||
CNT=0
|
||||
fi
|
||||
TOTCNT=`expr $TOTCNT + 1`
|
||||
|
||||
sleep 1
|
||||
|
||||
testpid
|
||||
done
|
||||
|
||||
pid=$savepid
|
||||
testpid
|
||||
if [ "X$pid" != "X" ]
|
||||
then
|
||||
echo "Failed to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
else
|
||||
echo "Stopped $APP_LONG_NAME."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
status() {
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME is not running."
|
||||
exit 1
|
||||
else
|
||||
echo "$APP_LONG_NAME is running ($pid)."
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
dump() {
|
||||
echo "Dumping $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME was not running."
|
||||
|
||||
else
|
||||
kill -3 $pid
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to dump $APP_LONG_NAME."
|
||||
exit 1
|
||||
else
|
||||
echo "Dumped $APP_LONG_NAME."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
||||
'console')
|
||||
checkUser touchlock $1
|
||||
console
|
||||
;;
|
||||
|
||||
'start')
|
||||
checkUser touchlock $1
|
||||
start
|
||||
;;
|
||||
|
||||
'stop')
|
||||
checkUser "" $1
|
||||
stopit
|
||||
;;
|
||||
|
||||
'restart')
|
||||
checkUser touchlock $1
|
||||
stopit
|
||||
start
|
||||
;;
|
||||
|
||||
'status')
|
||||
checkUser "" $1
|
||||
status
|
||||
;;
|
||||
|
||||
'dump')
|
||||
checkUser "" $1
|
||||
dump
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 { console | start | stop | restart | status | dump }"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
19
development/sonarqube/slack-desc
Normal file
19
development/sonarqube/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description.
|
||||
# Line up the first '|' above the ':' following the base package name, and
|
||||
# the '|' on the right side marks the last column you can put a character in.
|
||||
# You must make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
sonarqube: SonarQube (quality management platform)
|
||||
sonarqube:
|
||||
sonarqube: SonarQube software (previously called Sonar) is an open source
|
||||
sonarqube: quality management platform, dedicated to continuously analyze and
|
||||
sonarqube: measure technical quality, from project portfolio to method.
|
||||
sonarqube:
|
||||
sonarqube:
|
||||
sonarqube:
|
||||
sonarqube: Homepage: http://www.sonarqube.org/
|
||||
sonarqube:
|
||||
sonarqube:
|
121
development/sonarqube/sonarqube.SlackBuild
Normal file
121
development/sonarqube/sonarqube.SlackBuild
Normal file
|
@ -0,0 +1,121 @@
|
|||
#!/bin/sh
|
||||
# Slackware build script for sonarqube
|
||||
|
||||
# Copyright 2014 Giorgio Peron giorgio.peron@gmail.com Campodarsego, PD, Italy
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PRGNAM=sonarqube
|
||||
VERSION=${VERSION:-4.3.2}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
bailout() {
|
||||
printf "\nThis requires a \"sonar\" user and group.\n"
|
||||
printf "\tgroupadd -g 287 sonar\n"
|
||||
printf "\tuseradd -g 287 -u 287 -r -c 'SonarQube user' -s /bin/bash -d /usr/share/sonarqube sonar\n\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ! getent group sonar 2>/dev/null 1>/dev/null ; then
|
||||
bailout
|
||||
elif ! getent passwd sonar 2>/dev/null 1>/dev/null ; then
|
||||
bailout
|
||||
fi
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i486 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i486" ]; then
|
||||
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
BINDIR="linux-x86-32"
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
BINDIR="linux-x86-32"
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
LIBDIRSUFFIX="64"
|
||||
BINDIR="linux-x86-64"
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
BINDIR=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG $TMP/$PRGNAM-$VERSION
|
||||
mkdir -p $PKG $OUTPUT
|
||||
cd $TMP
|
||||
|
||||
unzip $CWD/$PRGNAM-$VERSION.zip
|
||||
|
||||
mkdir -p $PKG/usr/share/$PRGNAM
|
||||
mkdir -p $PKG/var/{log,run,tmp}/$PRGNAM
|
||||
mkdir -p $PKG/etc/rc.d
|
||||
|
||||
mv $TMP/$PRGNAM-$VERSION/* $PKG/usr/share/$PRGNAM/
|
||||
|
||||
# expose the configuration file under /etc
|
||||
mv $PKG/usr/share/$PRGNAM/conf/sonar.properties{,.new}
|
||||
mv $PKG/usr/share/$PRGNAM/conf/wrapper.conf{,.new}
|
||||
cd $PKG/etc
|
||||
ln -sf ../usr/share/$PRGNAM/conf $PRGNAM
|
||||
|
||||
sed -i "s_sonar.jdbc.url=jdbc:h2:_#sonar.jdbc.url=jdbc:h2:_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new
|
||||
sed -i "s_#sonar.jdbc.url=jdbc:mysql:_sonar.jdbc.url=jdbc:mysql:_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new
|
||||
sed -i "s_#sonar.web.context=_sonar.web.context=/sonarqube_g" $PKG/usr/share/$PRGNAM/conf/sonar.properties.new
|
||||
sed -i "s_wrapper.java.command=java_wrapper.java.command=/usr/lib${LIBDIRSUFFIX}/java/bin/java_g" $PKG/usr/share/$PRGNAM/conf/wrapper.conf.new
|
||||
|
||||
chown -R sonar:sonar $PKG/usr/share/$PRGNAM
|
||||
chown -R sonar:sonar $PKG/var/{log,run,tmp}/$PRGNAM
|
||||
|
||||
rm -rf $PKG/usr/share/$PRGNAM/logs
|
||||
rm -rf $PKG/usr/share/$PRGNAM/temp
|
||||
cd $PKG/usr/share/$PRGNAM
|
||||
ln -fs ../../../var/log/$PRGNAM logs
|
||||
ln -fs ../../../var/tmp/$PRGNAM temp
|
||||
|
||||
# remove the executables for the others platforms
|
||||
cd $PKG/usr/share/$PRGNAM/bin
|
||||
find . -type d -not -name ${BINDIR} -not -name "." -not -name "lib" | xargs rm -rf
|
||||
|
||||
cat $CWD/rc.$PRGNAM > $PKG/etc/rc.d/rc.$PRGNAM.new
|
||||
sed -i "s:WRAPPER_CMD=\"./wrapper\":WRAPPER_CMD=\"/usr/share/sonarqube/bin/${BINDIR}/wrapper\":g" $PKG/etc/rc.d/rc.$PRGNAM.new
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -c n -l y $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|
10
development/sonarqube/sonarqube.info
Normal file
10
development/sonarqube/sonarqube.info
Normal file
|
@ -0,0 +1,10 @@
|
|||
PRGNAM="sonarqube"
|
||||
VERSION="4.3.2"
|
||||
HOMEPAGE="http://www.sonarqube.org"
|
||||
DOWNLOAD="http://dist.sonar.codehaus.org/sonarqube-4.3.2.zip"
|
||||
MD5SUM="2085e8ce11e0c941dc4451ec808c4169"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="jdk"
|
||||
MAINTAINER="Giorgio Peron"
|
||||
EMAIL="giorgio.peron@gmail.com"
|
Loading…
Reference in a new issue