On systems where the systemd directories exist but not the systemctl command, installation of MaxScale would cause systemctl to be called. This would print an error when the package is being installed.
70 lines
2.4 KiB
Bash
Executable File
70 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
# Create directories
|
|
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@
|
|
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@
|
|
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@
|
|
mkdir -p @CMAKE_INSTALL_PREFIX@/@MAXSCALE_DOCDIR@
|
|
|
|
# MAXSCALE_VARDIR is an absolute path to /var by default
|
|
mkdir -p @MAXSCALE_VARDIR@/log/maxscale
|
|
mkdir -p @MAXSCALE_VARDIR@/lib/maxscale
|
|
mkdir -p @MAXSCALE_VARDIR@/cache/maxscale
|
|
mkdir -p @MAXSCALE_VARDIR@/run/maxscale
|
|
|
|
# Create MaxScale user
|
|
if [ -f "/etc/passwd" ] && [ "$(grep -c 'maxscale' /etc/passwd)" -eq 0 ]
|
|
then
|
|
useradd -r -U -s /bin/false maxscale
|
|
fi
|
|
|
|
# Change the owner of the directories to maxscale:maxscale
|
|
chown -R maxscale:maxscale @MAXSCALE_VARDIR@/log/maxscale
|
|
chown -R maxscale:maxscale @MAXSCALE_VARDIR@/lib/maxscale
|
|
chown -R maxscale:maxscale @MAXSCALE_VARDIR@/cache/maxscale
|
|
chown -R maxscale:maxscale @MAXSCALE_VARDIR@/run/maxscale
|
|
chmod 0755 @MAXSCALE_VARDIR@/log/maxscale
|
|
chmod 0755 @MAXSCALE_VARDIR@/lib/maxscale
|
|
chmod 0755 @MAXSCALE_VARDIR@/cache/maxscale
|
|
chmod 0755 @MAXSCALE_VARDIR@/run/maxscale
|
|
|
|
# Copy init.d script and ldconfig file
|
|
if [ -f "@CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale" ]
|
|
then
|
|
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale /etc/init.d/
|
|
else
|
|
echo "Could not find init script: @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale" >& 2
|
|
fi
|
|
|
|
if [ -f "@CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.conf" ]
|
|
then
|
|
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.conf /etc/ld.so.conf.d/
|
|
else
|
|
echo "Could not find ldconfig file: @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.conf" >& 2
|
|
fi
|
|
|
|
# Only copy the scripts if systemd folder and systemctl executable are found
|
|
if [ -f @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.service ] && [ -x "$(which systemctl)" ]
|
|
then
|
|
if [ -d "/lib/systemd/system" ]
|
|
then
|
|
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.service /lib/systemd/system
|
|
systemctl daemon-reload
|
|
elif [ -d "/usr/lib/systemd/system" ]
|
|
then
|
|
cp @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.service /usr/lib/systemd/system
|
|
systemctl daemon-reload
|
|
fi
|
|
else
|
|
echo "Could not find systemd service file: @CMAKE_INSTALL_PREFIX@/@MAXSCALE_SHAREDIR@/maxscale.service" >& 2
|
|
fi
|
|
|
|
# If no maxscale.cnf file is found in /etc, copy the template file there
|
|
if [ ! -f "@MAXSCALE_CONFDIR@/maxscale.cnf" ]
|
|
then
|
|
cp -n @MAXSCALE_CONFDIR@/maxscale.cnf.template @MAXSCALE_CONFDIR@/maxscale.cnf
|
|
fi
|
|
|
|
/sbin/ldconfig
|