2023-01-22 11:36:32 +01:00
#!/usr/bin/env bash
YW = $( echo "\033[33m" )
BL = $( echo "\033[36m" )
RD = $( echo "\033[01;31m" )
BGN = $( echo "\033[4;92m" )
GN = $( echo "\033[1;92m" )
DGN = $( echo "\033[32m" )
CL = $( echo "\033[m" )
BFR = "\\r\\033[K"
HOLD = "-"
CM = " ${ GN } ✓ ${ CL } "
2024-04-20 10:00:07 +02:00
APP = "Mystic Installer"
2023-01-22 11:36:32 +01:00
MSDIR = "/opt/mystic"
2024-04-20 10:00:07 +02:00
MSTEMPDIR = "/usr/local/src/mystic"
2023-01-22 11:36:32 +01:00
TMP_DIR = $( mktemp -d)
2024-04-20 10:06:48 +02:00
SCRIPT_VER = "v1"
2024-04-20 10:33:44 +02:00
GROUP = $( getent group mystic)
USER = $( getent shadow mystic)
FAIL2BAN_GROUP = $( getent group fail2ban)
IPBAN_GROUP = $( getent group ipban)
2024-04-20 10:06:48 +02:00
hostname = " $( hostname) "
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
shopt -s expand_aliases
alias die = 'EXIT=$? LINE=$LINENO error_exit'
trap die ERR
function error_exit( ) {
trap - ERR
local reason = "Unknown failure occured."
local msg = " ${ 1 :- $reason } "
local flag = " ${ RD } ‼ ERROR ${ CL } $EXIT @ $LINE "
echo -e " $flag $msg " 1>& 2
exit $EXIT
}
if command -v pveversion >/dev/null 2>& 1; then echo -e "⚠️ Can't Install on Proxmox " ; exit; fi
while true; do
read -p " This will Install ${ APP } on $hostname . Proceed(y/n)? " yn
case $yn in
[ Yy] *) break ; ;
[ Nn] *) exit ; ;
*) echo "Please answer yes or no." ; ;
esac
done
clear
function header_info {
/usr/bin/env figlet -w 60 -c "Mystic BBS DbP Installer" | /usr/games/lolcat -f
}
header_info
function msg_info( ) {
local msg = " $1 "
echo -ne " ${ HOLD } ${ YW } ${ msg } ... "
}
function msg_ok( ) {
local msg = " $1 "
echo -e " ${ BFR } ${ CM } ${ GN } ${ msg } ${ CL } "
}
2023-01-22 11:36:32 +01:00
2024-04-20 10:06:48 +02:00
msg_info "Installing needed base packages"
2024-04-20 10:38:39 +02:00
apt update & >/dev/null
2024-04-20 10:00:07 +02:00
apt install lsb-release dpkg-dev wget curl figlet lolcat unzip -y & >/dev/null
2024-04-20 10:06:48 +02:00
msg_ok "Installing needed base packages"
2024-04-15 08:38:48 +02:00
ARCH = $( dpkg-architecture -qDEB_HOST_MULTIARCH)
2023-01-22 11:36:32 +01:00
DIST = $( lsb_release -i -s)
CODENAME = $( lsb_release -c -s)
LIBDIR = /usr/lib/${ ARCH }
MYSTIC_VER = "112a48"
2024-04-20 10:00:07 +02:00
MRC_VER = "129a"
MRC_SERVER_VER = "129a"
2023-01-22 11:36:32 +01:00
if [ " ${ ARCH } " = "x86_64-linux-gnu" ] ; then
INIMOD_ARCH = "amd64"
MYSTIC_ARCH = "l64"
MYSTIC_EXT = "rar"
elif [ " ${ ARCH } " = "i386-linux-gnu" ] ; then
INIMOD_ARCH = "amd32"
MYSTIC_ARCH = "l32"
MYSTIC_EXT = "rar"
elif [ " ${ ARCH } " = "aarch64-linux-gnu" ] ; then
INIMOD_ARCH = "arm64"
MYSTIC_ARCH = "p64"
MYSTIC_EXT = "zip"
elif [ " ${ ARCH } " = "arm-linux-gnueabihf" ] ; then
INIMOD_ARCH = "arm32"
MYSTIC_ARCH = "p32"
MYSTIC_EXT = "zip"
else
echo " Architecture not supported: ${ ARCH } "
exit 1
fi
2024-04-15 08:38:48 +02:00
if [ " ${ CODENAME } " = "bookworm" ] ; then
2024-04-20 10:44:41 +02:00
UBUNTU = "kinetic"
2024-04-14 09:59:27 +02:00
elif [ " ${ CODENAME } " = "bullseye" ] ; then
2024-04-20 10:44:41 +02:00
UBUNTU = "focal"
2023-01-22 11:36:32 +01:00
elif [ " ${ CODENAME } " = "buster" ] ; then
2024-04-20 10:44:41 +02:00
UBUNTU = "bionic"
2023-01-22 11:36:32 +01:00
elif [ " ${ CODENAME } " = "stretch" ] ; then
2024-04-20 10:44:41 +02:00
UBUNTU = "xenial"
2023-01-22 11:36:32 +01:00
else
2024-04-20 10:44:41 +02:00
UBUNTU = " ${ CODENAME } "
2023-01-22 11:36:32 +01:00
fi
2024-04-20 10:00:07 +02:00
if [ " ${ CODENAME } " = "bookworm" ] ; then
msg_info "adding bullseye repository to bookworm for python2"
echo "deb http://deb.debian.org/debian bullseye contrib non-free main" > /etc/apt/sources.list.d/bullseye.list
echo "deb http://deb.debian.org/debian bullseye-updates contrib non-free main" >> /etc/apt/sources.list.d/bullseye.list
echo "deb http://security.debian.org bullseye-security contrib non-free main" >> /etc/apt/sources.list.d/bullseye.list
2024-04-20 10:09:35 +02:00
msg_ok "adding bullseye repository to bookworm for python2"
2024-04-20 10:00:07 +02:00
fi
2023-01-22 11:36:32 +01:00
2024-04-20 10:38:39 +02:00
msg_info "adding jessie lts repository for openssl 1.0"
2024-04-20 10:35:03 +02:00
wget https://deb.freexian.com/extended-lts/archive-key.gpg -O /etc/apt/trusted.gpg.d/freexian-archive-extended-lts.gpg & >/dev/null
2024-04-20 10:00:07 +02:00
echo "deb http://deb.freexian.com/extended-lts jessie main contrib non-free" > /etc/apt/sources.list.d/jessie-extended-lts.list
2024-04-20 10:38:39 +02:00
msg_ok "adding jessie lts repository for openssl 1.0"
2023-01-22 11:36:32 +01:00
msg_info " Setting up ${ APP } Repository "
2024-04-14 09:59:27 +02:00
apt install -y software-properties-common & >/dev/null
2023-01-22 11:36:32 +01:00
if [ " ${ DIST } " = "Debian" ] ; then
2024-04-20 10:38:39 +02:00
apt-add-repository -y contrib & >/dev/null
apt-add-repository -y non-free & >/dev/null
2023-01-22 11:36:32 +01:00
fi
if [ " ${ DIST } " = "Ubuntu" ] ; then
2024-04-20 10:38:39 +02:00
apt-add-repository -y universe & >/dev/null
apt-add-repository -y restricted & >/dev/null
apt-add-repository -y multiverse & >/dev/null
2023-01-22 11:36:32 +01:00
fi
2024-04-14 09:59:27 +02:00
apt update & >/dev/null
2024-04-20 11:20:06 +02:00
apt install -y curl wget gnupg unzip unrar & >/dev/null
2024-04-20 10:00:07 +02:00
mkdir -p $MSTEMPDIR & >/dev/null
2024-04-20 11:07:14 +02:00
msg_ok " Setting up ${ APP } Repository "
2023-01-22 11:36:32 +01:00
#==============================================================================================================
2024-04-20 10:00:07 +02:00
msg_info " Downloading ${ APP } Mystic BBS Disconnected-by-Peer Installer Files "
wget -N https://gitea.disconnected-by-peer.at/geos_one/mystic/archive/main.zip -O $MSTEMPDIR /dbp-main.zip & >/dev/null
rm -rf $MSTEMPDIR /mystic & >/dev/null
pushd $MSTEMPDIR & >/dev/null
unzip dbp-main.zip & >/dev/null
popd & >/dev/null
msg_ok " Downloading ${ APP } Mystic BBS Disconnected-by-Peer Installer Files "
#==============================================================================================================
2024-04-20 11:07:14 +02:00
# Mystic install Directory
2024-04-20 10:00:07 +02:00
source $MSTEMPDIR /mystic/mystic/prompt-${ SCRIPT_VER } .sh
2024-04-20 11:07:14 +02:00
# Add Cryptlib support
source $MSTEMPDIR /mystic/cryptlib/prompt-${ SCRIPT_VER } .sh
# Add Spellcheck
source $MSTEMPDIR /mystic/spellcheck/prompt-${ SCRIPT_VER } .sh
# Add Multi Relay Chat Client
source $MSTEMPDIR /mystic/mrc-client/prompt-${ SCRIPT_VER } .sh
# Add Multi Relay Chat Server
source $MSTEMPDIR /mystic/mrc-server/prompt-${ SCRIPT_VER } .sh
# Add IP2Location
source $MSTEMPDIR /mystic/ip2location/prompt-${ SCRIPT_VER } .sh
# Add DBP Scripts
source $MSTEMPDIR /mystic/dbp/prompt-${ SCRIPT_VER } .sh
# Add Fail2ban | banip
source $MSTEMPDIR /mystic/fail2ban/prompt-${ SCRIPT_VER } .sh
# Add Fail2ban | banip
source $MSTEMPDIR /mystic/dosemu2/prompt-${ SCRIPT_VER } .sh
2024-04-20 10:00:07 +02:00
2023-01-22 11:36:32 +01:00
#==============================================================================================================
2024-04-20 11:20:06 +02:00
# Add Fail2ban | banip
source $MSTEMPDIR /mystic/mystic/install-${ SCRIPT_VER } .sh
exit 0
2023-01-22 11:36:32 +01:00
msg_info " Starting ${ APP } Installation !!!! Plz set Installation dir the same as bevor !!! "
2024-04-15 20:09:08 +02:00
apt install -y unrar-free python3 python2 libpython2.7 & >/dev/null
2024-04-20 10:00:07 +02:00
wget -N http://www.mysticbbs.com/downloads/mys${ MYSTIC_VER } _${ MYSTIC_ARCH } .${ MYSTIC_EXT } -O $MSTEMPDIR /mys${ MYSTIC_VER } _${ MYSTIC_ARCH } .${ MYSTIC_EXT } & >/dev/null
rm -rf $MSTEMPDIR /mystic-${ MYSTIC_VER } & >/dev/null
mkdir -p $MSTEMPDIR /mystic-${ MYSTIC_VER } & >/dev/null
pushd $MSTEMPDIR /mystic-${ MYSTIC_VER } & >/dev/null
2023-01-22 11:36:32 +01:00
if [ " ${ MYSTIC_EXT } " = "rar" ] ; then
unrar -x ../mys${ MYSTIC_VER } _${ MYSTIC_ARCH } .${ MYSTIC_EXT } & >/dev/null
elif [ " ${ MYSTIC_EXT } " = "zip" ] ; then
unzip ../mys${ MYSTIC_VER } _${ MYSTIC_ARCH } .${ MYSTIC_EXT } & >/dev/null
else
exit 1
fi
chmod +x install & >/dev/null
./install
popd & >/dev/null
msg_ok " Finisched ${ APP } Installation "
msg_info " Installing ${ APP } Systemd Start/Stop Scripts and Service File "
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR /mystic/mis & >/dev/null
2024-04-15 08:38:48 +02:00
bash install-${ SCRIPT_VER } .sh $MYSTIC_DIR & >/dev/null
2023-01-22 11:36:32 +01:00
popd & >/dev/null
msg_ok " Installing ${ APP } Systemd Start/Stop Scripts and Service File "
msg_info " Creating ${ APP } und setting Permissions in ${ MYSTIC_DIR } "
if [ -z " ${ GROUP } " ] ; then
groupadd mystic & >/dev/null
fi
if [ -z " ${ USER } " ] ; then
useradd --home-dir ${ MYSTIC_DIR } -g mystic mystic & >/dev/null
fi
chown mystic:mystic -R ${ MYSTIC_DIR } & >/dev/null
find ${ MYSTIC_DIR } -name '*.txt' -type f -exec dos2unix { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.ini' -type f -exec dos2unix { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.txt' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.ini' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.dat' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.ans' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.asc' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.hlp' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.mnu' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.mnu' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.mps' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.mpx' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.mpy' -type f -exec chmod 0664 { } \; & >/dev/null
find ${ MYSTIC_DIR } -name '*.ms' -type f -exec chmod 0664 { } \; & >/dev/null
msg_ok " Creating ${ APP } und setting Permissions in ${ MYSTIC_DIR } "
#==============================================================================================================
if [ $SPELL = "Yes" ] ; then
msg_info " Setting up Spellcheck for ${ APP } "
2024-04-14 09:59:27 +02:00
apt install -y libhunspell-dev & >/dev/null
2024-04-20 10:00:07 +02:00
wget -N http://www.mysticbbs.com/downloads/mystic_spellcheck_v2.zip -O $MSTEMPDIR /mystic_spellcheck_v2.zip & >/dev/null
rm -rf $MSTEMPDIR /mystic_spellcheck_v2 & >/dev/null
mkdir -p $MSTEMPDIR /mystic_spellcheck_v2 & >/dev/null
pushd $MSTEMPDIR /mystic_spellcheck_v2 & >/dev/null
2023-01-22 11:36:32 +01:00
unzip ../mystic_spellcheck_v2.zip & >/dev/null
cp dictionary.* ${ MYSTIC_DIR } /data/
cp wordlist.txt ${ MYSTIC_DIR } /data/
cp README.txt ${ MYSTIC_DIR } /docs/Spellcheck_README.txt
echo "; List secondary dicitinoaries in this File" > ${ MYSTIC_DIR } /data/dictlist.txt
echo "; more details in the Spellcheck_README.txt" >> ${ MYSTIC_DIR } /data/dictlist.txt
popd & >/dev/null
msg_ok " Setting up Spellcheck for ${ APP } "
fi
#==============================================================================================================
if [ $MRC = "Yes" ] ; then
msg_info " Setting up Multi Relay Chat for ${ APP } "
2024-04-14 09:59:27 +02:00
apt install -y build-essential & >/dev/null
2024-04-20 10:00:07 +02:00
wget -N https://www.phenomprod.com/releases/mystic/pn-mrc${ MRC_VER } .zip -O $MSTEMPDIR /pn-mrc${ MRC_VER } .zip & >/dev/null
rm -rf $MSTEMPDIR /pn-mrc${ MRC_VER } & >/dev/null
mkdir -p $MSTEMPDIR /pn-mrc${ MRC_VER } & >/dev/null
pushd $MSTEMPDIR /pn-mrc${ MRC_VER } & >/dev/null
2023-01-22 11:36:32 +01:00
unzip ../pn-mrc${ MRC_VER } .zip & >/dev/null
cp mrc_${ MRC_VER } /mrc_{ client,config} .py ${ MYSTIC_DIR } /
cp mrc_${ MRC_VER } /scripts/* ${ MYSTIC_DIR } /themes/default/scripts/
cp mrc_${ MRC_VER } /text/* ${ MYSTIC_DIR } /themes/default/text/
cp installation.asc ${ MYSTIC_DIR } /docs/mrc_installation.asc
popd & >/dev/null
msg_ok " Setting up Multi Relay Chat for ${ APP } "
msg_info "Installing Multi Relay Chat Systemd Start/Stop Scripts and Service File"
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR /mystic/mrc-client & >/dev/null
2024-04-15 08:38:48 +02:00
bash install-${ SCRIPT_VER } .sh $MYSTIC_DIR & >/dev/null
2023-01-22 11:36:32 +01:00
popd & >/dev/null
msg_ok "Installing Multi Relay Chat Systemd Start/Stop Scripts and Service File"
fi
#==============================================================================================================
if [ $CRYPT = "Yes" ] ; then
msg_info " Setting up ${ APP } cryptlib for ssh/ssl (be patient compiling cryptlib) "
2024-04-14 09:59:27 +02:00
apt install -y build-essential & >/dev/null
apt install -y gcc-9 g++-9 cpp-9 gcc g++ cpp & >/dev/null
apt install -y patch & >/dev/null
apt install -y dos2unix & >/dev/null
2024-04-20 10:00:07 +02:00
wget -N http://www.mysticbbs.com/downloads/cl345.zip -O $MSTEMPDIR /cryptlib345.zip & >/dev/null
rm -rf $MSTEMPDIR /cryptlib-3.4.5 & >/dev/null
mkdir -p $MSTEMPDIR /cryptlib-3.4.5 & >/dev/null
pushd $MSTEMPDIR /cryptlib-3.4.5 & >/dev/null
2023-01-22 11:36:32 +01:00
unzip ../cryptlib345.zip & >/dev/null
dos2unix tools/* & >/dev/null
2024-04-18 07:51:25 +02:00
dos2unix kernel/* & >/dev/null
2024-04-20 10:00:07 +02:00
patch -p1 -i $MSTEMPDIR /mystic/cryptlib/gccversion-345.patch & >/dev/null
patch -p0 -i $MSTEMPDIR /mystic/cryptlib/cl-linux-yield.patch & >/dev/null
2023-01-22 11:36:32 +01:00
ln -sf gcc-9 /usr/bin/gcc & >/dev/null
ln -sf g++-9 /usr/bin/g++ & >/dev/null
ln -sf cpp-9 /usr/bin/cpp & >/dev/null
make shared & >/dev/null
2024-04-14 09:59:27 +02:00
apt purge -y gcc g++ cpp & >/dev/null
apt install -y gcc g++ cpp & >/dev/null
2023-01-22 11:36:32 +01:00
cp libcl.so.3.4.5 ${ LIBDIR } / & >/dev/null
ln -sf libcl.so.3.4.5 ${ LIBDIR } /libcl.so.3.4 & >/dev/null
ln -sf libcl.so.3.4 ${ LIBDIR } /libcl.so.3 & >/dev/null
ln -sf libcl.so.3 ${ LIBDIR } /libcl.so & >/dev/null
popd & >/dev/null
msg_ok " Setting up ${ APP } cryptlib for ssh/ssl (be patient compiling cryptlib) "
fi
#==============================================================================================================
if [ $IP2L = "Yes" ] ; then
msg_info " Setting up IP2Location Download Client for ${ APP } "
2024-04-14 09:59:27 +02:00
apt install -y libwww-perl & >/dev/null
2024-04-20 10:00:07 +02:00
wget -N https://www.ip2location.com/downloads/ip2location-downloader-linux.zip -O $MSTEMPDIR /ip2location-downloader-linux.zip & >/dev/null
rm -rf $MSTEMPDIR /ip2location-downloader-linux & >/dev/null
mkdir -p $MSTEMPDIR /ip2location-downloader-linux & >/dev/null
pushd $MSTEMPDIR /ip2location-downloader-linux & >/dev/null
2023-01-22 11:36:32 +01:00
unzip ../ip2location-downloader-linux.zip & >/dev/null
cp download.pl ${ MYSTIC_DIR } /ip2location
chmod +x ${ MYSTIC_DIR } /ip2location
cp readme.txt ${ MYSTIC_DIR } /docs/ip2location_README.txt
popd & >/dev/null
msg_ok " Setting up IP2Location Download Client for ${ APP } "
fi
#==============================================================================================================
if [ $DBPSCRIPTS = "Yes" ] ; then
msg_info " Installing bbs.disconnected-by-peer.at Scripts Dependencies for ${ APP } "
2024-04-20 10:00:07 +02:00
wget -N https://ftp.disconnected-by-peer.at/IniMod/IniMod_linux_${ INIMOD_ARCH } .zip -O $MSTEMPDIR /IniMod_linux_${ INIMOD_ARCH } .zip & >/dev/null
rm -rf $MSTEMPDIR /IniMod_linux_${ INIMOD_ARCH } & >/dev/null
mkdir -p $MSTEMPDIR /IniMod_linux_${ INIMOD_ARCH } & >/dev/null
pushd $MSTEMPDIR /IniMod_linux_${ INIMOD_ARCH } & >/dev/null
2023-01-22 11:36:32 +01:00
unzip ../IniMod_linux_${ INIMOD_ARCH } .zip & >/dev/null
cp inimod ${ MYSTIC_DIR }
chmod +x ${ MYSTIC_DIR } /inimod
cp README.txt ${ MYSTIC_DIR } /docs/inimod_README.txt
popd & >/dev/null
msg_ok " Installing bbs.disconnected-by-peer.at Scripts Dependencies for ${ APP } "
msg_info "Installing DbP Cron/banip/unbanip Scripts"
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR /mystic/dbp & >/dev/null
2024-04-15 08:38:48 +02:00
bash install-${ SCRIPT_VER } .sh $MYSTIC_DIR & >/dev/null
2023-01-22 11:36:32 +01:00
popd & >/dev/null
msg_ok "Installing DbP Cron/banip/unbanip Scripts"
fi
#==============================================================================================================
if [ $BANUNBAN = "fail2ban" ] ; then
msg_info " Installing Fail2Ban Dependencies for ${ APP } "
2024-04-14 09:59:27 +02:00
apt install -y fail2ban & >/dev/null
apt install -y iptables & >/dev/null
apt install -y ipset & >/dev/null
2023-01-22 11:36:32 +01:00
if [ -z " ${ FAIL2BAN_GROUP } " ] ; then
groupadd fail2ban & >/dev/null
fi
usermod --append --groups fail2ban mystic & >/dev/null
msg_ok " Installing Fail2Ban Dependencies for ${ APP } "
msg_info " Installing Fail2Ban Scripts for ${ APP } "
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR /mystic/fail2ban & >/dev/null
2024-04-15 08:38:48 +02:00
bash install-${ SCRIPT_VER } .sh $MYSTIC_DIR & >/dev/null
2023-01-22 11:36:32 +01:00
popd & >/dev/null
msg_ok " Installing Fail2Ban Scripts for ${ APP } "
fi
if [ $BANUNBAN = "ipban" ] ; then
msg_info " Installing IpBan Dependencies for ${ APP } "
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR & >/dev/null
wget -N https://github.com/DigitalRuby/IPBan/raw/master/IPBanCore/Linux/Scripts/Install.sh -O $MSTEMPDIR /ipban-install.sh & >/dev/null
2024-04-14 09:59:27 +02:00
apt install -y fail2ban & >/dev/null
apt install -y iptables & >/dev/null
apt install -y ipset & >/dev/null
apt install -y xmlstarlet & >/dev/null
2024-04-20 10:00:07 +02:00
sed -i '/yum/d' $MSTEMPDIR /ipban-install.sh & >/dev/null
sed -i '/systemctl/d' $MSTEMPDIR /ipban-install.sh & >/dev/null
sed -e 's!sudo !!g' -i $MSTEMPDIR /ipban-install.sh & >/dev/null
sed -e 's!-qq!-qqo!g' -i $MSTEMPDIR /ipban-install.sh & >/dev/null
sed -i '/nano/d' $MSTEMPDIR /ipban-install.sh & >/dev/null
bash $MSTEMPDIR /ipban-install.sh & >/dev/null
2023-01-22 11:36:32 +01:00
if [ -z " ${ IPBAN_GROUP } " ] ; then
groupadd ipban & >/dev/null
fi
usermod --append --groups ipban mystic & >/dev/null
chown -R root:ipban /opt/ipban & >/dev/null
chmod 775 /opt/ipban/ & >/dev/null
dos2unix /opt/ipban/*.{ config,xml,md} & >/dev/null
popd & >/dev/null
msg_ok " Installing IpBan Dependencies for ${ APP } "
#msg_info "Installing Fail2Ban Scripts for ${APP}"
2024-04-20 10:00:07 +02:00
#pushd $MSTEMPDIR/mystic/ipban &>/dev/null
2024-04-15 08:38:48 +02:00
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
2023-01-22 11:36:32 +01:00
#popd &>/dev/null
#msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
#==============================================================================================================
if [ $DOSEMU = "Yes" ] ; then
msg_info " Installing DosEmu2 Dependencies for ${ APP } "
2024-04-20 10:00:07 +02:00
pushd $MSTEMPDIR & >/dev/null
2024-04-18 07:51:25 +02:00
curl 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6d9cd73b401a130336ed0a56ebe1b5ded2ad45d6' | tee /etc/apt/trusted.gpg.d/code.launchpad.net-dosemu2.asc & >/dev/null
2024-04-20 10:44:41 +02:00
echo " deb https://ppa.launchpadcontent.net/dosemu2/ppa/ubuntu $UBUNTU main " | tee /etc/apt/sources.list.d/dosemu2.list & >/dev/null
2024-04-14 09:59:27 +02:00
apt update & >/dev/null
apt install -y dosemu2 & >/dev/null
apt install -y install-otherdos & >/dev/null
2023-01-22 11:36:32 +01:00
2024-04-20 10:00:07 +02:00
#rm -rf $MSTEMPDIR/IniMod_linux${INIMOD_ARCH} &>/dev/null
#mkdir -p $MSTEMPDIR/IniMod_linux${INIMOD_ARCH} &>/dev/null
#pushd $MSTEMPDIR/IniMod_linux${INIMOD_ARCH} &>/dev/null
2023-01-22 11:36:32 +01:00
#unzip ../IniMod_linux${INIMOD_ARCH}.zip &>/dev/null
#cp inimod ${MYSTIC_DIR}
#chmod +x ${MYSTIC_DIR}/inimod
#cp README.txt ${MYSTIC_DIR}/docs/inimod_README.txt
#popd &>/dev/null
msg_ok " Installing DosEmu2 Dependencies for ${ APP } "
#msg_info "Installing DbP Cron/banip/unbanip Scripts"
2024-04-20 10:00:07 +02:00
#pushd $MSTEMPDIR/mystic/dbp &>/dev/null
2024-04-15 08:38:48 +02:00
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
2023-01-22 11:36:32 +01:00
#popd &>/dev/null
#msg_ok "Installing DbP Cron/banip/unbanip Scripts"
fi
#==============================================================================================================
sed -e 's/\\/\//g' -i ${ MYSTIC_DIR } /mutil.ini
sed -e " s!c:/mystic! ${ MYSTIC_DIR } !g " -i ${ MYSTIC_DIR } /mutil.ini
sed -e " s!d:/mystic! ${ MYSTIC_DIR } !g " -i ${ MYSTIC_DIR } /mutil.ini
sed -e " s!d:/nodelist! ${ MYSTIC_DIR } /files/nodelist!g " -i ${ MYSTIC_DIR } /mutil.ini
sed -e 's/\\/\//g' -i ${ MYSTIC_DIR } /mide.ini
sed -e " s!c:/mystic! ${ MYSTIC_DIR } !g " -i ${ MYSTIC_DIR } /mide.ini
mkdir -p ${ MYSTIC_DIR } /mutil.d
cat ${ MYSTIC_DIR } /mutil.ini | sed '/\[General\]/q' | sed '$d' > ${ MUTIL_DIR } /README.txt
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[General\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /General
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Import_FIDONET\.NA\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Import_FIDONET.NA
configarray = ( 'Import_FIDONET.NA' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Import_FILEBONE\.NA\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Import_FILEBONE.NA
configarray += ( 'Import_FILEBONE.NA' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Export_FILEBONE\.NA\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Export_FILEBONE.NA
configarray += ( 'Export_FILEBONE.NA' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Export_AREAS\.BBS\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Export_AREAS.BBS
configarray += ( 'Export_AREAS.BBS' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Export_GOLDED\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Export_GOLDED
configarray += ( 'Export_GOLDED' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Import_FILES\.BBS\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Import_FILES.BBS
configarray += ( 'Import_FILES.BBS' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[MassUpload\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /MassUpload
configarray += ( 'MassUpload' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[GenerateTopLists\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /GenerateTopLists
configarray += ( 'GenerateTopLists' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[GenerateAllFiles\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /GenerateAllFiles
configarray += ( 'GenerateAllFiles' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PurgeMessageBases\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PurgeMessageBases
configarray += ( 'PurgeMessageBases' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PackMessageBases\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PackMessageBases
configarray += ( 'PackMessageBases' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PostTextFiles\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PostTextFiles
configarray += ( 'PostTextFiles' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[Import_MessageBase\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /Import_MessageBase
configarray += ( 'Import_MessageBase' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[ImportEchoMail\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /ImportEchoMail
configarray += ( 'ImportEchoMail' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[ExportEchoMail\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /ExportEchoMail
configarray += ( 'ExportEchoMail' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[MergeNodeLists\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /MergeNodeLists
configarray += ( 'MergeNodeLists' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[FileToss\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /FileToss
configarray += ( 'FileToss' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PackFileBases\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PackFileBases
configarray += ( 'PackFileBases' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[LinkMessages\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /LinkMessages
configarray += ( 'LinkMessages' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PurgeUserBase\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PurgeUserBase
configarray += ( 'PurgeUserBase' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[PackUserBase\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /PackUserBase
configarray += ( 'PackUserBase' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[FileSort\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /FileSort
configarray += ( 'FileSort' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[AutoHatch\]/, /\[/p' | sed '$d' > ${ MUTIL_DIR } /AutoHatch
configarray += ( 'AutoHatch' )
cat ${ MYSTIC_DIR } /mutil.ini | sed -n '/\[EchoNodeTracker\]/, $p' | sed '$d' > ${ MUTIL_DIR } /EchoNodeTracker
configarray += ( 'EchoNodeTracker' )
pushd ${ MUTIL_DIR } & >/dev/null
#=====================================================================================#
configfile = "maint.ini"
config = ( 'PurgeMessageBases' 'PackMessageBases' 'MergeNodeLists' 'PackFileBases' 'PurgeUserBase' 'PackUserBase' 'FileSort' )
preparray = ( " ${ configarray [@] } " )
for el in ${ config [@] }
do
preparray = ( " ${ preparray [@]/ $el } " )
done
cat General ${ config [@] } > ${ MYSTIC_DIR } /${ configfile }
for el in ${ preparray [@] }
do
sed -e " / $el /d " -i ${ MYSTIC_DIR } /${ configfile }
done
#=====================================================================================#
configfile = "mailout.ini"
config = ( 'ExportEchoMail' )
preparray = ( " ${ configarray [@] } " )
for el in ${ config [@] }
do
preparray = ( " ${ preparray [@]/ $el } " )
done
cat General ${ config [@] } > ${ MYSTIC_DIR } /${ configfile }
for el in ${ preparray [@] }
do
sed -e " / $el /d " -i ${ MYSTIC_DIR } /${ configfile }
done
#=====================================================================================#
configfile = "mailin.ini"
config = ( 'ImportEchoMail' 'FileToss' )
preparray = ( " ${ configarray [@] } " )
for el in ${ config [@] }
do
preparray = ( " ${ preparray [@]/ $el } " )
done
cat General ${ config [@] } > ${ MYSTIC_DIR } /${ configfile }
for el in ${ preparray [@] }
do
sed -e " / $el /d " -i ${ MYSTIC_DIR } /${ configfile }
done
#=====================================================================================#
configfile = "importna.ini"
config = ( 'Import_FIDONET.NA' 'Import_FILEBONE.NA' )
preparray = ( " ${ configarray [@] } " )
for el in ${ config [@] }
do
preparray = ( " ${ preparray [@]/ $el } " )
done
cat General ${ config [@] } > ${ MYSTIC_DIR } /${ configfile }
for el in ${ preparray [@] }
do
sed -e " / $el /d " -i ${ MYSTIC_DIR } /${ configfile }
done
#=====================================================================================#
chown mystic:mystic -R ${ MYSTIC_DIR } & >/dev/null
popd & >/dev/null
msg_ok "Completed Successfully!\n"