51 lines
1.8 KiB
Bash
51 lines
1.8 KiB
Bash
# Version: 0.3.5
|
|
# Copyright (c) 2005-2022:
|
|
# Darren 'Tadgy' Austin <darren (at) afterdark.org.uk>
|
|
# Licensed under the terms of the GNU General Public License version 3.
|
|
|
|
install_file() {
|
|
# $1 = Path of file to process (without leading /, with .new extension)
|
|
|
|
[[ -z "$1" ]] || [[ ! -e "$1" ]] && return
|
|
local OLDFILE="${1%.new}"
|
|
|
|
if [[ ! -e "$OLDFILE" ]]; then
|
|
mv "$1" "$OLDFILE"
|
|
elif [[ -L "$OLDFILE" ]]; then
|
|
# |--------|-----------------------------------------------------------|
|
|
echo "WARNING: $OLDFILE"
|
|
echo " is a symbolic link - the incoming .new file was not written"
|
|
echo " to it in order to prevent clobbering something important."
|
|
echo
|
|
elif [[ "$(md5sum <"$OLDFILE")" == "$(md5sum <"$1")" ]]; then
|
|
rm -f "$1"
|
|
else
|
|
# |--------|-----------------------------------------------------------|
|
|
echo "WARNING: $OLDFILE"
|
|
echo " has been customised since original installation and was not"
|
|
echo " replaced with the incoming .new file."
|
|
echo
|
|
fi
|
|
}
|
|
|
|
# Install new configuration files.
|
|
install_file "etc/bash_completion.d/fail2ban.new"
|
|
install_file "etc/default/fail2ban.new"
|
|
|
|
# Add service start to rc.local
|
|
RC="rc.fail2ban"
|
|
fgrep "/etc/rc.d/$RC" etc/rc.d/rc.local >/dev/null 2>&1 || {
|
|
echo >>etc/rc.d/rc.local
|
|
echo "[[ -x /etc/rc.d/$RC ]] /etc/rc.d/$RC start" >>etc/rc.d/rc.local
|
|
}
|
|
|
|
# Add service shutdown to rc.local_shutdown
|
|
fgrep "/etc/rc.d/$RC" etc/rc.d/rc.local_shutdown >/dev/null 2>&1 || {
|
|
# If rc.local_shutdown doesn't exist, create it.
|
|
[[ -e etc/rc.d/rc.local_shutdown ]] || {
|
|
echo "#!/bin/bash" >etc/rc.d/rc.local_shutdown
|
|
chmod 755 etc/rc.d/rc.local_shutdown
|
|
}
|
|
echo >>etc/rc.d/rc.local_shutdown
|
|
echo "[[ -x /etc/rc.d/$RC ]] && /etc/rc.d/$RC stop" >>etc/rc.d/rc.local_shutdown
|
|
}
|