snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
100
misc/packaging/post_install.sh
Normal file
100
misc/packaging/post_install.sh
Normal file
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
BIN_DIR=/usr/bin
|
||||
DATA_DIR=/var/lib/centrifugo
|
||||
LOG_DIR=/var/log/centrifugo
|
||||
SCRIPT_DIR=/usr/lib/centrifugo/scripts
|
||||
|
||||
function install_init {
|
||||
cp -f $SCRIPT_DIR/initd.sh /etc/init.d/centrifugo
|
||||
chmod +x /etc/init.d/centrifugo
|
||||
}
|
||||
|
||||
function install_initel6 {
|
||||
cp -f $SCRIPT_DIR/initd.el6.sh /etc/init.d/centrifugo
|
||||
chmod +x /etc/init.d/centrifugo
|
||||
}
|
||||
|
||||
function install_systemd {
|
||||
cp -f $SCRIPT_DIR/centrifugo.service /lib/systemd/system/centrifugo.service
|
||||
systemctl is-enabled centrifugo &>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
systemctl enable centrifugo &>/dev/null
|
||||
fi
|
||||
systemctl daemon-reload
|
||||
}
|
||||
|
||||
function install_upstart {
|
||||
cp -f $SCRIPT_DIR/centrifugo.upstart /etc/init/centrifugo.conf
|
||||
initctl reload-configuration
|
||||
}
|
||||
|
||||
function install_update_rcd {
|
||||
update-rc.d centrifugo defaults
|
||||
}
|
||||
|
||||
function install_chkconfig {
|
||||
chkconfig --add centrifugo
|
||||
}
|
||||
|
||||
id centrifugo &>/dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
useradd --system -U -M centrifugo -s /bin/false -d $DATA_DIR
|
||||
fi
|
||||
|
||||
if [ ! -d $DATA_DIR ]; then
|
||||
mkdir -p $DATA_DIR
|
||||
fi
|
||||
|
||||
if [ ! -d $LOG_DIR ]; then
|
||||
mkdir -p $LOG_DIR
|
||||
fi
|
||||
|
||||
chown -R -L centrifugo:centrifugo $DATA_DIR
|
||||
chown -R -L centrifugo:centrifugo $LOG_DIR
|
||||
|
||||
# Add defaults file, if it doesn't exist
|
||||
if [[ ! -f /etc/default/centrifugo ]]; then
|
||||
touch /etc/default/centrifugo
|
||||
fi
|
||||
|
||||
# Generate config with unique secret key, if it doesn't exist
|
||||
if [[ ! -f /etc/centrifugo/config.json ]]; then
|
||||
/usr/bin/centrifugo genconfig -c /etc/centrifugo/config.json
|
||||
fi
|
||||
|
||||
# Distribution-specific logic
|
||||
if [[ -f /etc/redhat-release ]]; then
|
||||
# RHEL-variant logic
|
||||
which systemctl &>/dev/null
|
||||
if [[ $? -eq 0 ]]; then
|
||||
install_systemd
|
||||
else
|
||||
# Assuming sysv
|
||||
install_initel6
|
||||
install_chkconfig
|
||||
fi
|
||||
elif [[ -f /etc/debian_version ]]; then
|
||||
# Debian/Ubuntu logic
|
||||
which systemctl &>/dev/null
|
||||
if [[ $? -eq 0 ]]; then
|
||||
install_systemd
|
||||
else
|
||||
/sbin/init --version >/dev/null 2>/dev/null
|
||||
if [[ $? -eq 0 && `/sbin/init --version` =~ upstart ]]; then
|
||||
# Assuming upstart
|
||||
install_upstart
|
||||
else
|
||||
# Assuming sysv
|
||||
install_init
|
||||
install_update_rcd
|
||||
fi
|
||||
fi
|
||||
elif [[ -f /etc/os-release ]]; then
|
||||
source /etc/os-release
|
||||
if [[ $ID = "amzn" ]]; then
|
||||
# Amazon Linux logic
|
||||
install_init
|
||||
install_chkconfig
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user