From e178887050d2744347fafd963f53ce303dae9371 Mon Sep 17 00:00:00 2001 From: "Markus M. May" Date: Mon, 16 Nov 2009 22:38:05 +0100 Subject: [PATCH] Major changes, preparation, so that Nexus can run unix-ified as well. --- nexus/PKGBUILD | 67 ++- nexus/nexus | 613 +++------------------------- nexus/{java-nexus.install => nexus.install} | 23 +- nexus/{nexus => nexus.sh} | 0 4 files changed, 120 insertions(+), 583 deletions(-) rewrite nexus/nexus (99%) rename nexus/{java-nexus.install => nexus.install} (52%) copy nexus/{nexus => nexus.sh} (100%) diff --git a/nexus/PKGBUILD b/nexus/PKGBUILD index cea19c3..2d7f9ba 100644 --- a/nexus/PKGBUILD +++ b/nexus/PKGBUILD @@ -1,6 +1,6 @@ #Contributor: Markus M. May -pkgname=java-nexus -pkgver=1.3.6 +pkgname=nexus +pkgver=1.4.0 pkgrel=1 pkgdesc="A Maven Repository Manager." url="http://nexus.sonatype.org" @@ -10,40 +10,69 @@ depends=('java-environment') optdepends=('apache: a full featured webserver' 'maven: a java project management and project comprehension tool') -install=java-nexus.install +install=nexus.install conflicts=('java-nexus') -provides=('java-nexus') +provides=('java-nexus' 'nexus') options=(!strip !docs) source=(http://nexus.sonatype.org/downloads/nexus-webapp-${pkgver}-bundle.tar.gz - 'nexus' - 'wrapper.conf') + 'nexus.sh' + 'wrapper.conf' + 'nexus') -md5sums=('47070ee947f3cc320bf33e485484f16a' +md5sums=('a6926740cd54fff66bd24db6b23ff63f' '09355624885f13411b906ceeefcc2c84' - 'cf73635687f9252cf851a3a2d62513d1') + 'cf73635687f9252cf851a3a2d62513d1' + 'ea96c854c4486b5aa9114c93314488ab') build() { cd ${srcdir} - # Create directory - install -d $pkgdir/opt/nexus + # Create directory and copy everything + install -d $pkgdir/opt/$pkgname + + mv $srcdir/$pkgname-webapp-$pkgver $srcdir/$pkgname-$pkgver # deleting unnecessary files before copying them if [ $CARCH = 'x86_64' ]; then - mv $srcdir/nexus-webapp-${pkgver}/bin/jsw/linux-x86-64 $srcdir/nexus-bin || return 1 - rm -r $srcdir/nexus-webapp-${pkgver}/bin || return 1 - mv $srcdir/nexus-bin $srcdir/nexus-webapp-${pkgver}/bin || return 1 + mv $srcdir/$pkgname-${pkgver}/bin/jsw/linux-x86-64 $pkgdir/opt/$pkgname/bin || return 1 + rm -r $srcdir/$pkgname-${pkgver}/bin || return 1 elif [ $CARCH} = 'i686' ]; then - mv $srcdir/nexus-webapp-${pkgver}/bin/jsw/linux-x86-32 $srcdir/nexus-bin || return 1 - rm -r $srcdir/nexus-webapp-${pkgver}/bin || return 1 - mv $srcdir/nexus-bin $srcdir/nexus-webapp-${pkgver}/bin || return 1 + mv $srcdir/$pkname-${pkgver}/bin/jsw/linux-x86-32 $pkgdir/opt/$pkgname/bin || return 1 + rm -r $srcdir/$pkname-${pkgver}/bin fi - install $srcdir/nexus $srcdir/nexus-webapp-${pkgver}/bin/nexus - install $srcdir/wrapper.conf $srcdir/nexus-webapp-${pkgver}/conf/wrapper.conf + # copy example configuration and documentation + mkdir -p $pkgdir/usr/share/doc/$pkgname/conf + mv $srcdir/$pkgname-$pkgver/conf/examples $pkgdir/usr/share/doc/$pkgname/conf/examples + install $srcdir/$pkgname-$pkgver/LICENSE.txt $pkgdir/usr/share/doc/$pkgname + rm $srcdir/$pkgname-$pkgver/LICENSE.txt + install $srcdir/$pkgname-$pkgver/NOTICE.txt $pkgdir/usr/share/doc/$pkgname + rm $srcdir/$pkgname-$pkgver/NOTICE.txt + + # install the additional config files to the desired destination + mkdir -p $pkgdir/etc/$pkgname || return 1 +### + install $srcdir/$pkgname-${pkgver}/conf/plexus.properties $pkgdir/etc/$pkgname/plexus.properties + install $srcdir/$pkgname-${pkgver}/conf/plexus.xml $pkgdir/etc/$pkgname/plexus.xml + install $srcdir/$pkgname-${pkgver}/conf/classworlds.conf $pkgdir/etc/$pkgname/classworlds.conf + install $srcdir/wrapper.conf $pkgdir/etc/$pkgname || return 1 + rm -r $srcdir/$pkgname-$pkgver/conf + + # install startup script + mkdir -p $pkgdir/etc/rc.d + install $srcdir/$pkgname $pkgdir/etc/rc.d/$pkgname + + # delete not needed directories + rm -r $srcdir/$pkgname-$pkgver/logs # copy the source to the final directory - cp -a $srcdir/nexus-webapp-${pkgver}/* $pkgdir/opt/nexus || return 1 + cp -a $srcdir/$pkgname-${pkgver}/* $pkgdir/opt/$pkgname || return 1 + + mkdir -p $pkgdir/etc/rc.d || return 1 + install $srcdir/$pkgname.sh $pkgdir/opt/$pkgname/bin || return 1 + + mkdir -p $pkgdir/var/log/$pkgname/ + touch $pkgdir/var/log/$pkgname/wrapper.log } diff --git a/nexus/nexus b/nexus/nexus dissimilarity index 99% index 34569e2..98c3a9c 100755 --- a/nexus/nexus +++ b/nexus/nexus @@ -1,563 +1,50 @@ -#! /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="testwrapper" -DEF_APP_LONG_NAME="Test Wrapper Sample Application" - -# Application -APP_NAME="nexus-webapp" -APP_LONG_NAME="Sonatype Nexus Repository Manager" - -# Wrapper -WRAPPER_CMD="/opt/nexus/bin/wrapper" -WRAPPER_CONF="/opt/nexus/conf/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" - -# 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= - -# 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" - - # 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 0 - 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 +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +# environment variables for the use with sonar +PID_DIR=/var/run/nexus +HOME_DIR=/opt/nexus +BIN_DIR=$HOME_DIR/bin +ETC_DIR=/etc/nexus + + + +case "$1" in + start) + stat_busy "Starting Nexus Repository Manager" + + if [ ! -x $PID_DIR ] ; then + install -m755 -g nexus -o nexus -d $PID_DIR + fi + + su -c "$BIN_DIR/nexus.sh start" nexus + if [ $? -gt 0 ]; then + stat_fail + else + stat_done + fi + ;; + stop) + stat_busy "Stopping Nexus Repository Manager" + + [ -f $PID_DIR/nexus.pid ] && su -c "$BIN_DIR/nexus.sh stop" nexus 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + rm -r $PID_DIR + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + ;; +esac +exit 0 diff --git a/nexus/java-nexus.install b/nexus/nexus.install similarity index 52% rename from nexus/java-nexus.install rename to nexus/nexus.install index c9a4fc0..94a3354 100644 --- a/nexus/java-nexus.install +++ b/nexus/nexus.install @@ -9,8 +9,23 @@ pre_install() { # arg 1: the new package version post_install() { + echo ">>> Creating user and group and setting permissions..." + getent group nexus > /dev/null || usr/sbin/groupadd nexus + getent passwd nexus > /dev/null || usr/sbin/useradd -c \ + 'Nexus Repository Manager' -g nexus -d '/opt/nexus' \ + --system -s /bin/bash nexus &> /dev/null + + cd opt/nexus + + chown -R nexus:nexus * + chown -R root:sonar /var/log/nexus + chmod -R 775 /var/log/nexus cat << EOF >>> +>>> This package is part of the ArchLinux Development Stack, vist +>>> http://openpario.mime.oregonstate.edu:3000/projects/archdevstack for +>>> more information. +>>> >>> Nexus can now be started via /opt/nexus/bin/nexus. >>> To run nexus as a service, please link the above mentioned script into the >>> /etc/rc.d directory. @@ -39,6 +54,12 @@ pre_remove() { # arg 1: the old package version post_remove() { - /bin/true + getent passwd nexus > /dev/null || usr/sbin/userdel nexus &>/dev/null + getent group nexus > /dev/null || usr/sbin/groupdel nexus &>/dev/null + + if [ -x /var/run/nexus ] ; then + rm -r /var/run/nexus + fi + } diff --git a/nexus/nexus b/nexus/nexus.sh similarity index 100% copy from nexus/nexus copy to nexus/nexus.sh -- 2.11.4.GIT