32855ed499
The non-root error should go to stderr like the other echo output Signed-off-by: Steven Hardy <shardy@redhat.com> Change-Id: I1d9c51c43f9a2db0b50c4c95fc0a0e4505078c51
79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Install prefix for config files (e.g. "/usr/local").
|
|
# Leave empty to install into /etc
|
|
CONF_PREFIX=""
|
|
LOG_DIR=/var/log/heat
|
|
|
|
|
|
install -d $LOG_DIR
|
|
|
|
detect_rabbit() {
|
|
PKG_CMD="rpm -q"
|
|
RABBIT_PKG="rabbitmq-server"
|
|
QPID_PKG="qpid-cpp-server"
|
|
|
|
# Detect OS type
|
|
# Ubuntu has an lsb_release command which allows us to detect if it is Ubuntu
|
|
if lsb_release -i 2>/dev/null | grep -iq ubuntu
|
|
then
|
|
PKG_CMD="dpkg -s"
|
|
QPID_PKG="qpidd"
|
|
fi
|
|
if $PKG_CMD $RABBIT_PKG > /dev/null 2>&1
|
|
then
|
|
if ! $PKG_CMD $QPID_PKG > /dev/null 2>&1
|
|
then
|
|
return 0
|
|
fi
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
sed_if_rabbit() {
|
|
DEFAULT_RABBIT_PASSWORD="guest"
|
|
conf_path=$1
|
|
if echo $conf_path | grep ".conf$" >/dev/null 2>&1
|
|
then
|
|
if detect_rabbit
|
|
then
|
|
echo "rabbitmq detected, configuring $conf_path for rabbit" >&2
|
|
sed -i "/^rpc_backend\b/ s/impl_qpid/impl_kombu/" $conf_path
|
|
sed -i "/^rpc_backend/a rabbit_password=$DEFAULT_RABBIT_PASSWORD" $conf_path
|
|
fi
|
|
fi
|
|
}
|
|
|
|
install_dir() {
|
|
local dir=$1
|
|
local prefix=$2
|
|
|
|
for fn in $(ls $dir); do
|
|
f=$dir/$fn
|
|
if [ -d $f ]; then
|
|
[ -d $prefix/$f ] || install -d $prefix/$f
|
|
install_dir $f $prefix
|
|
elif [ -f $prefix/$f ]; then
|
|
echo "NOT replacing existing config file $prefix/$f" >&2
|
|
diff -u $prefix/$f $f
|
|
else
|
|
echo "Installing $fn in $prefix/$dir" >&2
|
|
install -m 664 $f $prefix/$dir
|
|
if [ $fn = 'heat-engine.conf' ]; then
|
|
sed -i "s/%ENCRYPTION_KEY%/`hexdump -n 16 -v -e '/1 "%02x"' /dev/random`/" $prefix/$f
|
|
fi
|
|
sed_if_rabbit $prefix/$f
|
|
fi
|
|
done
|
|
}
|
|
|
|
install_dir etc $CONF_PREFIX
|
|
|
|
./setup.py install >/dev/null
|
|
rm -rf build heat.egg-info
|