Compare commits

..

25 Commits

Author SHA1 Message Date
Mario Fetka
c2744e173f Final Commit for Verison 0.1 2024-04-20 20:36:33 +02:00
Mario Fetka
8642382301 split correctly the last file 2024-04-20 17:56:18 +02:00
Mario Fetka
b4e69372ff split correctly the last file 2024-04-20 17:55:18 +02:00
Mario Fetka
a1c33dc1ca patch mutil.ini linefeed patch 2024-04-20 17:50:37 +02:00
Mario Fetka
1f64297bc5 patch mutil.ini 2024-04-20 17:44:23 +02:00
Mario Fetka
2743931c39 patch mutil.ini 2024-04-20 17:42:51 +02:00
Mario Fetka
b3d54afb73 finish info install 2024-04-20 16:37:34 +02:00
Mario Fetka
d2a810111e fill the info files 2024-04-20 16:24:15 +02:00
Mario Fetka
cea699d8aa fill the info files 2024-04-20 16:21:26 +02:00
Mario Fetka
6ae6000485 add more info scripts 2024-04-20 15:59:42 +02:00
Mario Fetka
b38cff456d add info scripts 2024-04-20 15:52:30 +02:00
Mario Fetka
b1a0c26fda add info scripts 2024-04-20 15:22:04 +02:00
Mario Fetka
2e7df477e6 create typo in mystic config script 2024-04-20 14:54:46 +02:00
Mario Fetka
05596e7400 create typo in mystic config script 2024-04-20 14:51:17 +02:00
Mario Fetka
0e65546789 create missing dirs for mrc 2024-04-20 14:49:31 +02:00
Mario Fetka
53a5b05a9c create split mystic config scripts 2024-04-20 14:46:05 +02:00
Mario Fetka
97289025bf add finale installer parts 2024-04-20 14:18:20 +02:00
Mario Fetka
0ff0fdc74b add more installer parts 2024-04-20 14:04:22 +02:00
Mario Fetka
dc5d8baa88 correct hdden pacakge install 2024-04-20 13:52:13 +02:00
Mario Fetka
67bf6b3e05 install correct typo in cp 2024-04-20 13:50:58 +02:00
Mario Fetka
c57f7ff4a3 install correct cp command 2024-04-20 13:48:33 +02:00
Mario Fetka
f0c65ccbff install correct ssl lib 2024-04-20 13:44:14 +02:00
Mario Fetka
3866481fb3 move pemtrans compile to install script 2024-04-20 13:42:52 +02:00
Mario Fetka
5ee2fb838b move pemtrans compile to install script 2024-04-20 13:40:04 +02:00
Mario Fetka
fde1fc9d0c move pemtrans compile to install script 2024-04-20 13:39:37 +02:00
33 changed files with 618 additions and 899 deletions

6
FILE_ID.DIZ Normal file
View File

@@ -0,0 +1,6 @@
DBP MYSTIC INSTALLER SCRIPT v0.1
This Script will help you install the Mystic
BBS System on Debian Linux. It also Compiles
Cryptlib, Adds Fail2ban, Logmanagent, Multi
Relay Chat (Client & Server), ip2location
downloader, desemu2, Spellcheck ....

10
cryptlib/info-v1.sh Normal file
View File

@@ -0,0 +1,10 @@
if [ $CRYPT = "Yes" ]; then
echo "" >> ${DBP_INFO}
echo "Mystic SSL Support" >> ${DBP_INFO}
echo "with the libcl support you can now activate ssl in the Mystic system" >> ${DBP_INFO}
echo "also with the Cryptlib support a tool called pemtrans has been istalled" >> ${DBP_INFO}
echo "with it you can import your ssl certs like LetsEncrypt into the Mystic system" >> ${DBP_INFO}
echo "./pemtrans <key> <cert> <out> <label> <secret>" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -26,7 +26,7 @@ msg_ok "Setting up ${APP} cryptlib for ssh/ssl (be patient compiling cryptlib)"
msg_info "Setting up ${APP} pemtrans (be patient compiling pemtrans)"
SSLDEV=$(apt-cache madison libssl-dev | grep 1.0.1 | awk '{print $3}')
apt install -y libssl-dev=${SSLDEV}
apt install -y --allow-downgrades libssl1.0.0 libssl-dev=${SSLDEV} &>/dev/null
wget -N https://github.com/amenonsen/pemtrans/archive/refs/heads/master.zip -O $MSTEMPDIR/pemtrans.zip &>/dev/null
rm -rf $MSTEMPDIR/pemtrans-master &>/dev/null
pushd $MSTEMPDIR/ &>/dev/null
@@ -41,12 +41,14 @@ EXTRA_LIBS = -lresolv -lpthread
INCLUDES = -I../cryptlib-3.4.5
pemtrans: pemtrans.c
gcc9 $(INCLUDES) $(LIBS) -o pemtrans pemtrans.c $(CRYPTLIB) \
gcc $(INCLUDES) $(LIBS) -o pemtrans pemtrans.c $(CRYPTLIB) \
-lcrypto -lssl -lcl $(EXTRA_LIBS)
EOF
pushd $MSTEMPDIR/pemtrans-master &>/dev/null
cp pemtrams ${MYSTIC_DIR}/
make &>/dev/null
cp pemtrans ${MYSTIC_DIR}/
cp pemtrans.1 ${MYSTIC_DIR}/docs/
cp README ${MYSTIC_DIR}/docs/pemtrans_README
popd &>/dev/null

View File

@@ -101,7 +101,7 @@ if [ $MRCSERVER_ENABLE = "true" ]; then
ln -sf ../../logs/mrcserver.${NOW}.log ${MYSTIC_DIR}/data/mrc/mrcserver.log
ln -sf mrcserver.${NOW}.log ${MYSTIC_DIR}/logs/mrcserver.log
[ -f /${MYSTIC_DIR}/logs/mrcserver.${YESTERDAY}.log ] && gzip -9 ${MYSTIC_DIR}/logs/mrcserver.${YESTERDAY}.log
find ${MYSTIC_DIR}/logs/ -type f -mtime +${MRCserver_KEEP} -name 'mrcserver.*' -exec rm {} \;
find ${MYSTIC_DIR}/logs/ -type f -mtime +${MRCSERVER_KEEP} -name 'mrcserver.*' -exec rm {} \;
fi
if [ $NODE_ENABLE = "true" ]; then

View File

@@ -7,6 +7,7 @@ ErrorLog=false
NodeLog=false
MutilLog=false
MrcChatLog=false
MrcServerLog=false
BanUnbanIP=false
BaseDir=@MYSTIC_DIR@

18
dbp/info-v1.sh Normal file
View File

@@ -0,0 +1,18 @@
echo "" >> ${DBP_INFO}
echo "To activate the Disconnected-by-peer scripts for Mystic" >> ${DBP_INFO}
echo "you have to activate it in the Mystic Event Editor" >> ${DBP_INFO}
echo "Below is a suggested configuration" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "Active | Description | Event Type | Exec Hour:Min | Shell | Prefix | Semaphore | Kill-After | Warning | SMTWTFS" >> ${DBP_INFO}
echo "-------+--------------------------------+------------+---------------+--------------------------------------------------+--------+--------------------------+--------------------------+---------+--------" >> ${DBP_INFO}
echo "Yes | Daily Tasks | Shell | 00:00 | cron -f dbp.ini | Yes | | | 0 | SMTWTFS" >> ${DBP_INFO}
echo "Yes | Nightly Maintenance | Shell | 04:00 | mutil maint.ini | Yes | | | 0 | SMTWTFS" >> ${DBP_INFO}
echo "Yes | Firewall Ban | IP Blocked | 00:00 | banunban -f dbp.ini -d banip -i @IP@ | Yes | | | 0 | -------" >> ${DBP_INFO}
echo "Yes | Sending Outbound Echo/Net Mail | Semaphore | 00:00 | mutil mailout.ini|mis poll send|mutil mailin.ini | Yes | echomail.out|netmail.out | echomail.out|netmail.out | 0 | -------" >> ${DBP_INFO}
echo "Yes | Toss Incomming Echo/Net Mail | Semaphore | 00:00 | mutil mailin.ini | Yes | echomail.in|netmail.in | echomail.in|netmail.in | 0 | -------" >> ${DBP_INFO}
echo "Yes | Poll Echomail | Inteval | 01:05 | mis poll forced|mutil mailin.ini | Yes | | | | SMTWTFS" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "Bevore activating any services you have to configure the ${MYSTIC_DIR}/dbp.ini file to your needs and installed services" >> ${DBP_INFO}
echo "then you can start the ./cron -f dbp.ini as the mystic user" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}

View File

@@ -1,10 +0,0 @@
#!/bin/bash
MYSTIC_DIR="$1"
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" cron.sh > ${MYSTIC_DIR}/cron
chmod +x ${MYSTIC_DIR}/cron
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" banunban.sh > ${MYSTIC_DIR}/banunban
chmod +x ${MYSTIC_DIR}/banunban
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" dbp.ini > ${MYSTIC_DIR}/dbp.ini

View File

@@ -1,10 +1,24 @@
#!/bin/bash
MYSTIC_DIR="$1"
if [ $DBPSCRIPTS = "Yes" ]; then
msg_info "Installing bbs.disconnected-by-peer.at Scripts Dependencies for ${APP}"
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
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"
pushd $MSTEMPDIR/mystic/dbp &>/dev/null
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" cron.sh > ${MYSTIC_DIR}/cron
chmod +x ${MYSTIC_DIR}/cron
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" banunban.sh > ${MYSTIC_DIR}/banunban
chmod +x ${MYSTIC_DIR}/banunban
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" dbp.ini > ${MYSTIC_DIR}/dbp.ini
popd &>/dev/null
msg_ok "Installing DbP Cron/banip/unbanip Scripts"
fi

8
dosemu2/info-v1.sh Normal file
View File

@@ -0,0 +1,8 @@
if [ $DOSEMU = "Yes" ]; then
echo "" >> ${DBP_INFO}
echo "DosEmu2 Integration with Mystic" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "For the correct DosEmu2 integration follow the Mystic Doors doc ${MYSTIC_DIR}/docs/unix.install.txt" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -0,0 +1,12 @@
if [ $DOSEMU = "Yes" ]; then
msg_info "Installing DosEmu2 Dependencies for ${APP}"
pushd $MSTEMPDIR &>/dev/null
curl 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6d9cd73b401a130336ed0a56ebe1b5ded2ad45d6' | tee /etc/apt/trusted.gpg.d/code.launchpad.net-dosemu2.asc &>/dev/null
echo "deb https://ppa.launchpadcontent.net/dosemu2/ppa/ubuntu $UBUNTU main" | tee /etc/apt/sources.list.d/dosemu2.list &>/dev/null
apt update &>/dev/null
apt install -y dosemu2 &>/dev/null
#apt install -y install-otherdos &>/dev/null
msg_ok "Installing DosEmu2 Dependencies for ${APP}"
fi

21
fail2ban/info-v1.sh Normal file
View File

@@ -0,0 +1,21 @@
if [ $BANUNBAN = "fail2ban" ]; then
echo "" >> ${DBP_INFO}
echo "Fail2Ban Mystic integration" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "A Fail2ban Systemd service override has been installed so tha the unprivileged user mystic can add and remove " >> ${DBP_INFO}
echo "IP's to the fail2ban system" >> ${DBP_INFO}
echo "to activate the fail2ban integration you will have to enabel it in the ${MYSTIC_DIR}/dbp.ini file" >> ${DBP_INFO}
echo " for this to work correctly you wil have to change the firewall Line in the Event Editor to the suggested" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi
if [ $BANUNBAN = "ipban" ]; then
echo "" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -1,13 +0,0 @@
#!/bin/bash
MYSTIC_DIR="$1"
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" action.d/mysticbbs.conf > /etc/fail2ban/action.d/mysticbbs.conf
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" filter.d/mysticbbs.conf > /etc/fail2ban/filter.d/mysticbbs.conf
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" jail.d/mysticbbs.conf > /etc/fail2ban/jail.d/mysticbbs.conf
mkdir -p /etc/systemd/system/fail2ban.service.d
cp systemd/override.conf /etc/systemd/system/fail2ban.service.d/override.conf

View File

@@ -1,13 +1,53 @@
#!/bin/bash
MYSTIC_DIR="$1"
if [ $BANUNBAN = "fail2ban" ]; then
msg_info "Installing Fail2Ban Dependencies for ${APP}"
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
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}"
pushd $MSTEMPDIR/mystic/fail2ban &>/dev/null
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" action.d/mysticbbs.conf > /etc/fail2ban/action.d/mysticbbs.conf
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" filter.d/mysticbbs.conf > /etc/fail2ban/filter.d/mysticbbs.conf
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" jail.d/mysticbbs.conf > /etc/fail2ban/jail.d/mysticbbs.conf
mkdir -p /etc/systemd/system/fail2ban.service.d
cp systemd/override.conf /etc/systemd/system/fail2ban.service.d/override.conf
popd &>/dev/null
msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
if [ $BANUNBAN = "ipban" ]; then
msg_info "Installing IpBan Dependencies for ${APP}"
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
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
apt install -y xmlstarlet &>/dev/null
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
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}"
fi

View File

@@ -9,7 +9,7 @@ CL=$(echo "\033[m")
BFR="\\r\\033[K"
HOLD="-"
CM="${GN}${CL}"
APP="Mystic Installer"
APP="Mystic BBS"
MSDIR="/opt/mystic"
MSTEMPDIR="/usr/local/src/mystic"
TMP_DIR=$(mktemp -d)
@@ -77,9 +77,6 @@ DIST=$(lsb_release -i -s)
CODENAME=$(lsb_release -c -s)
LIBDIR=/usr/lib/${ARCH}
MYSTIC_VER="112a48"
MRC_VER="129a"
MRC_SERVER_VER="v10"
if [ "${ARCH}" = "x86_64-linux-gnu" ]; then
INIMOD_ARCH="amd64"
@@ -176,7 +173,6 @@ source $MSTEMPDIR/mystic/dosemu2/prompt-${SCRIPT_VER}.sh
#==============================================================================================================
# Mystic install
source $MSTEMPDIR/mystic/mystic/install-${SCRIPT_VER}.sh
# Add Spellcheck
@@ -187,294 +183,69 @@ source $MSTEMPDIR/mystic/mrc-client/install-${SCRIPT_VER}.sh
source $MSTEMPDIR/mystic/mrc-server/install-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/install-${SCRIPT_VER}.sh
exit 0
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/install-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/install-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/install-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/install-${SCRIPT_VER}.sh
#==============================================================================================================
if [ $CRYPT = "Yes" ]; then
msg_info "Setting up ${APP} cryptlib for ssh/ssl (be patient compiling cryptlib)"
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
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
unzip ../cryptlib345.zip &>/dev/null
dos2unix tools/* &>/dev/null
dos2unix kernel/* &>/dev/null
patch -p1 -i $MSTEMPDIR/mystic/cryptlib/gccversion-345.patch &>/dev/null
patch -p0 -i $MSTEMPDIR/mystic/cryptlib/cl-linux-yield.patch &>/dev/null
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
apt purge -y gcc g++ cpp &>/dev/null
apt install -y gcc g++ cpp &>/dev/null
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
# Mystic install
source $MSTEMPDIR/mystic/mystic/config-${SCRIPT_VER}.sh
# Add Spellcheck
source $MSTEMPDIR/mystic/spellcheck/config-${SCRIPT_VER}.sh
# Add Multi Relay Chat Client
source $MSTEMPDIR/mystic/mrc-client/config-${SCRIPT_VER}.sh
# Add Multi Relay Chat Server
source $MSTEMPDIR/mystic/mrc-server/config-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/config-${SCRIPT_VER}.sh
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/config-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/config-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/config-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/config-${SCRIPT_VER}.sh
#==============================================================================================================
if [ $IP2L = "Yes" ]; then
msg_info "Setting up IP2Location Download Client for ${APP}"
apt install -y libwww-perl &>/dev/null
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
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}"
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
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"
pushd $MSTEMPDIR/mystic/dbp &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
popd &>/dev/null
msg_ok "Installing DbP Cron/banip/unbanip Scripts"
fi
#==============================================================================================================
if [ $BANUNBAN = "fail2ban" ]; then
msg_info "Installing Fail2Ban Dependencies for ${APP}"
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
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}"
pushd $MSTEMPDIR/mystic/fail2ban &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
popd &>/dev/null
msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
if [ $BANUNBAN = "ipban" ]; then
msg_info "Installing IpBan Dependencies for ${APP}"
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
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
apt install -y xmlstarlet &>/dev/null
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
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}"
#pushd $MSTEMPDIR/mystic/ipban &>/dev/null
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
#popd &>/dev/null
#msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
#==============================================================================================================
if [ $DOSEMU = "Yes" ]; then
msg_info "Installing DosEmu2 Dependencies for ${APP}"
pushd $MSTEMPDIR &>/dev/null
curl 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6d9cd73b401a130336ed0a56ebe1b5ded2ad45d6' | tee /etc/apt/trusted.gpg.d/code.launchpad.net-dosemu2.asc &>/dev/null
echo "deb https://ppa.launchpadcontent.net/dosemu2/ppa/ubuntu $UBUNTU main" | tee /etc/apt/sources.list.d/dosemu2.list &>/dev/null
apt update &>/dev/null
apt install -y dosemu2 &>/dev/null
apt install -y install-otherdos &>/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
#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"
#pushd $MSTEMPDIR/mystic/dbp &>/dev/null
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
#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"
#==============================================================================================================
DBP_INFO=${MYSTIC_DIR}/docs/DbP-install.info
echo "==============================================================================================================" > ${DBP_INFO}
# Mystic install
source $MSTEMPDIR/mystic/mystic/info-${SCRIPT_VER}.sh
# Add Spellcheck
source $MSTEMPDIR/mystic/spellcheck/info-${SCRIPT_VER}.sh
# Add Multi Relay Chat Client
source $MSTEMPDIR/mystic/mrc-client/info-${SCRIPT_VER}.sh
# Add Multi Relay Chat Server
source $MSTEMPDIR/mystic/mrc-server/info-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/info-${SCRIPT_VER}.sh
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/info-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/info-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/info-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/info-${SCRIPT_VER}.sh
#==============================================================================================================
chown mystic:mystic -R ${MYSTIC_DIR} &>/dev/null
cat ${DBP_INFO}
echo "These Infos are also been put into ${DBP_INFO}"

View File

@@ -9,16 +9,11 @@ CL=$(echo "\033[m")
BFR="\\r\\033[K"
HOLD="-"
CM="${GN}${CL}"
APP="Mystic"
APP="Mystic BBS"
MSDIR="/opt/mystic"
MSTEMPDIR="/usr/local/src/mystic"
TMP_DIR=$(mktemp -d)
apt install lsb-release dpkg-dev wget curl -y &>/dev/null
ARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH)
DIST=$(lsb_release -i -s)
CODENAME=$(lsb_release -c -s)
SCRIPT_VER="v1"
GROUP=$(getent group mystic)
USER=$(getent shadow mystic)
@@ -26,9 +21,62 @@ USER=$(getent shadow mystic)
FAIL2BAN_GROUP=$(getent group fail2ban)
IPBAN_GROUP=$(getent group ipban)
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 msg_info() {
local msg="$1"
echo -ne " ${HOLD} ${YW}${msg}..."
}
function msg_ok() {
local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
}
msg_info "Installing needed base packages"
apt update &>/dev/null
apt install lsb-release dpkg-dev wget curl figlet lolcat unzip -y &>/dev/null
msg_ok "Installing needed base packages"
function header_info {
/usr/bin/env figlet -w 60 -c "Mystic BBS DbP Installer" | /usr/games/lolcat -f
}
header_info
ARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH)
DIST=$(lsb_release -i -s)
CODENAME=$(lsb_release -c -s)
LIBDIR=/usr/lib/${ARCH}
MYSTIC_VER="112a48"
SCRIPT_VER="v0"
if [ "${ARCH}" = "x86_64-linux-gnu" ]; then
INIMOD_ARCH="amd64"
@@ -52,575 +100,152 @@ else
fi
if [ "${CODENAME}" = "bookworm" ]; then
DIST="kinetic"
UBUNTU="kinetic"
elif [ "${CODENAME}" = "bullseye" ]; then
DIST="focal"
UBUNTU="focal"
elif [ "${CODENAME}" = "buster" ]; then
DIST="bionic"
UBUNTU="bionic"
elif [ "${CODENAME}" = "stretch" ]; then
DIST="xenial"
UBUNTU="xenial"
else
DIST="${CODENAME}"
UBUNTU="${CODENAME}"
fi
MRC_VER="129a"
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 {
echo -e "${BL}
__ __ _ _ ____ ____ _____
| \/ | | | (_) | _ \| _ \ / ____|
| \ / |_ _ ___| |_ _ ___ | |_) | |_) | (___
| |\/| | | | / __| __| |/ __| | _ <| _ < \___ \
| | | | |_| \__ \ |_| | (__ | |_) | |_) |____) |
|_| |_|\__, |___/\__|_|\___| |____/|____/|_____/
__/ |
_____ _ |___/ _____ _ _ _
| __ \| | | __ \ |_ _| | | | | |
| | | | |__ | |__) | | | _ __ ___| |_ __ _| | | ___ _ __
| | | | '_ \| ___/ | | | '_ \/ __| __/ _ | | |/ _ \ __|
| |__| | |_) | | _| |_| | | \__ \ || (_| | | | __/ |
|_____/|_ __/|_| |_____|_| |_|___/\__\__ _|_|_|\___|_|
${CL}"
}
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}"
}
msg_info "Setting up ${APP} Repository"
apt update &>/dev/null
apt install -y software-properties-common &>/dev/null
if [ "${DIST}" = "Debian" ]; then
apt-add-repository contrib &>/dev/null
apt-add-repository non-free &>/dev/null
fi
if [ "${DIST}" = "Ubuntu" ]; then
apt-add-repository universe &>/dev/null
apt-add-repository restricted &>/dev/null
apt-add-repository multiverse &>/dev/null
fi
apt update &>/dev/null
apt install -y curl &>/dev/null
apt install -y wget &>/dev/null
apt install -y gnupg &>/dev/null
mkdir -p /usr/local/src/mystic &>/dev/null
msg_ok "Setup ${APP} Repository"
#==============================================================================================================
MSAPPDIR=$(whiptail --inputbox "Mystic Install Directory that also must be set in the Mystic insallation Programm." 8 58 $MSDIR --title "Install Directory" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $MSAPPDIR ]; then
MYSTIC_DIR="$MSDIR"
echo -e "${DGN}Installing Mystic to: ${BGN}$MYSTIC_DIR${CL}"
else
if [ $exitstatus = 0 ]; then
MYSTIC_DIR="$MSAPPDIR"
echo -e "${DGN}Installing Mystic to: ${BGN}$MYSTIC_DIR${CL}"
fi
fi
MUTIL_DIR=${MYSTIC_DIR}/mutil.d
CRYPT=$(whiptail --title "SSL SSH Support in Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add ssl Support" ON \
"No" "Don't add ssl Support" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add ssl Support: ${BGN}$CRYPT${CL}"
fi
SPELL=$(whiptail --title "Spellcheck Support in Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add Spellcheck Support" ON \
"No" "Don't add Spellcheck Support" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add Spellcheck Support: ${BGN}$SPELL${CL}"
fi
MRC=$(whiptail --title "Multi Relay Chat Support in Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add MrC Support" ON \
"No" "Don't add MrC Support" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add Multi Realy Chat Support: ${BGN}$MRC${CL}"
fi
IP2L=$(whiptail --title "Add The IP2Location Download Client to Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add IP2Location Download Client" ON \
"No" "Don't Add IP2Location Download Client" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add DbP Script: ${BGN}$IP2L${CL}"
fi
DBPSCRIPTS=$(whiptail --title "Add The Disconnected by Peer Script to Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add DbP Script" ON \
"No" "Don't add DbP Script" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add DbP Script: ${BGN}$DBPSCRIPTS${CL}"
fi
BANUNBAN=$(whiptail --title "Add Ban / Anban to Mystic" --radiolist --cancel-button Exit-Script "Choose Fail2Ban IpBan No" 12 58 5 \
"fail2ban" "Add Fail2Ban" ON \
"ipban" "Add IpBan" OFF \
"No" "Don't add IP Banning" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add Fail2Ban: ${BGN}$BANUNBAN${CL}"
fi
DOSEMU=$(whiptail --title "Add DosEmu2 to Mystic" --radiolist --cancel-button Exit-Script "Choose Yes No" 8 58 2 \
"Yes" "Add DosEmu2 Script" ON \
"No" "Don't add DosEmu2 Script" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo -e "${DGN}Add DbP Script: ${BGN}$DOSEMU${CL}"
fi
#==============================================================================================================
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
msg_ok "adding bullseye repository to bookworm for python2"
fi
msg_info "adding jessie lts repository for openssl 1.0"
wget https://deb.freexian.com/extended-lts/archive-key.gpg -O /etc/apt/trusted.gpg.d/freexian-archive-extended-lts.gpg &>/dev/null
echo "deb http://deb.freexian.com/extended-lts jessie main contrib non-free" > /etc/apt/sources.list.d/jessie-extended-lts.list
msg_ok "adding jessie lts repository for openssl 1.0"
msg_info "Setting up ${APP} Repository"
apt install -y software-properties-common &>/dev/null
if [ "${DIST}" = "Debian" ]; then
apt-add-repository -y contrib &>/dev/null
apt-add-repository -y non-free &>/dev/null
fi
if [ "${DIST}" = "Ubuntu" ]; then
apt-add-repository -y universe &>/dev/null
apt-add-repository -y restricted &>/dev/null
apt-add-repository -y multiverse &>/dev/null
fi
apt update &>/dev/null
msg_ok "Finisched adding bullseye repository"
fi
apt install -y curl wget gnupg unzip unrar &>/dev/null
mkdir -p $MSTEMPDIR &>/dev/null
msg_ok "Setting up ${APP} Repository"
msg_info "Starting ${APP} Installation !!!! Plz set Installation dir the same as bevor !!!"
apt install -y unrar-free python3 python2 libpython2.7 &>/dev/null
wget -N http://www.mysticbbs.com/downloads/mys${MYSTIC_VER}_${MYSTIC_ARCH}.${MYSTIC_EXT} -O /usr/local/src/mystic/mys${MYSTIC_VER}_${MYSTIC_ARCH}.${MYSTIC_EXT} &>/dev/null
rm -rf /usr/local/src/mystic/mystic-${MYSTIC_VER} &>/dev/null
mkdir -p /usr/local/src/mystic/mystic-${MYSTIC_VER} &>/dev/null
pushd /usr/local/src/mystic/mystic-${MYSTIC_VER} &>/dev/null
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 "Downloading ${APP} Systemd Start/Stop Scripts and Service File"
wget -N https://gitea.disconnected-by-peer.at/geos_one/mystic/archive/main.zip -O /usr/local/src/mystic/dbp-main.zip &>/dev/null
rm -rf /usr/local/src/mystic/mystic &>/dev/null
pushd /usr/local/src/mystic &>/dev/null
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} Systemd Start/Stop Scripts and Service File"
msg_info "Installing ${APP} Systemd Start/Stop Scripts and Service File"
pushd /usr/local/src/mystic/mystic/mystic &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
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}"
msg_ok "Downloading ${APP} Mystic BBS Disconnected-by-Peer Installer Files"
#==============================================================================================================
if [ $SPELL = "Yes" ]; then
msg_info "Setting up Spellcheck for ${APP}"
apt install -y libhunspell-dev &>/dev/null
wget -N http://www.mysticbbs.com/downloads/mystic_spellcheck_v2.zip -O /usr/local/src/mystic/mystic_spellcheck_v2.zip &>/dev/null
rm -rf /usr/local/src/mystic/mystic_spellcheck_v2 &>/dev/null
mkdir -p /usr/local/src/mystic/mystic_spellcheck_v2 &>/dev/null
pushd /usr/local/src/mystic/mystic_spellcheck_v2 &>/dev/null
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
# Mystic install Directory
source $MSTEMPDIR/mystic/mystic/prompt-${SCRIPT_VER}.sh
# 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
#==============================================================================================================
if [ $MRC = "Yes" ]; then
msg_info "Setting up Multi Relay Chat for ${APP}"
apt install -y build-essential &>/dev/null
wget -N https://www.phenomprod.com/releases/mystic/pn-mrc${MRC_VER}.zip -O /usr/local/src/mystic/pn-mrc${MRC_VER}.zip &>/dev/null
rm -rf /usr/local/src/mystic/pn-mrc${MRC_VER} &>/dev/null
mkdir -p /usr/local/src/mystic/pn-mrc${MRC_VER} &>/dev/null
pushd /usr/local/src/mystic/pn-mrc${MRC_VER} &>/dev/null
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"
pushd /usr/local/src/mystic/mystic/mrc-client &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
popd &>/dev/null
msg_ok "Installing Multi Relay Chat Systemd Start/Stop Scripts and Service File"
fi
# Mystic install
source $MSTEMPDIR/mystic/mystic/install-${SCRIPT_VER}.sh
# Add Spellcheck
source $MSTEMPDIR/mystic/spellcheck/install-${SCRIPT_VER}.sh
# Add Multi Relay Chat Client
source $MSTEMPDIR/mystic/mrc-client/install-${SCRIPT_VER}.sh
# Add Multi Relay Chat Server
source $MSTEMPDIR/mystic/mrc-server/install-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/install-${SCRIPT_VER}.sh
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/install-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/install-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/install-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/install-${SCRIPT_VER}.sh
#==============================================================================================================
if [ $CRYPT = "Yes" ]; then
msg_info "Setting up ${APP} cryptlib for ssh/ssl (be patient compiling cryptlib)"
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
wget -N http://www.mysticbbs.com/downloads/cl345.zip -O /usr/local/src/mystic/cryptlib345.zip &>/dev/null
rm -rf /usr/local/src/mystic/cryptlib-3.4.5 &>/dev/null
mkdir -p /usr/local/src/mystic/cryptlib-3.4.5 &>/dev/null
pushd /usr/local/src/mystic/cryptlib-3.4.5 &>/dev/null
unzip ../cryptlib345.zip &>/dev/null
dos2unix tools/* &>/dev/null
dos2unix kernel/* &>/dev/null
patch -p1 -i /usr/local/src/mystic/mystic/cryptlib/patches/gccversion-345.patch &>/dev/null
patch -p0 -i /usr/local/src/mystic/mystic/cryptlib/patches/cl-linux-yield.patch &>/dev/null
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
apt purge -y gcc g++ cpp &>/dev/null
apt install -y gcc g++ cpp &>/dev/null
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
# Mystic install
source $MSTEMPDIR/mystic/mystic/config-${SCRIPT_VER}.sh
# Add Spellcheck
source $MSTEMPDIR/mystic/spellcheck/config-${SCRIPT_VER}.sh
# Add Multi Relay Chat Client
source $MSTEMPDIR/mystic/mrc-client/config-${SCRIPT_VER}.sh
# Add Multi Relay Chat Server
source $MSTEMPDIR/mystic/mrc-server/config-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/config-${SCRIPT_VER}.sh
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/config-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/config-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/config-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/config-${SCRIPT_VER}.sh
#==============================================================================================================
if [ $IP2L = "Yes" ]; then
msg_info "Setting up IP2Location Download Client for ${APP}"
apt install -y libwww-perl &>/dev/null
wget -N https://www.ip2location.com/downloads/ip2location-downloader-linux.zip -O /usr/local/src/mystic/ip2location-downloader-linux.zip &>/dev/null
rm -rf /usr/local/src/mystic/ip2location-downloader-linux &>/dev/null
mkdir -p /usr/local/src/mystic/ip2location-downloader-linux &>/dev/null
pushd /usr/local/src/mystic/ip2location-downloader-linux &>/dev/null
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}"
wget -N https://ftp.disconnected-by-peer.at/IniMod/IniMod_linux_${INIMOD_ARCH}.zip -O /usr/local/src/mystic/IniMod_linux_${INIMOD_ARCH}.zip &>/dev/null
rm -rf /usr/local/src/mystic/IniMod_linux_${INIMOD_ARCH} &>/dev/null
mkdir -p /usr/local/src/mystic/IniMod_linux_${INIMOD_ARCH} &>/dev/null
pushd /usr/local/src/mystic/IniMod_linux_${INIMOD_ARCH} &>/dev/null
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"
pushd /usr/local/src/mystic/mystic/dbp &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
popd &>/dev/null
msg_ok "Installing DbP Cron/banip/unbanip Scripts"
fi
#==============================================================================================================
if [ $BANUNBAN = "fail2ban" ]; then
msg_info "Installing Fail2Ban Dependencies for ${APP}"
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
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}"
pushd /usr/local/src/mystic/mystic/fail2ban &>/dev/null
bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
popd &>/dev/null
msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
if [ $BANUNBAN = "ipban" ]; then
msg_info "Installing IpBan Dependencies for ${APP}"
pushd /usr/local/src/mystic &>/dev/null
wget -N https://github.com/DigitalRuby/IPBan/raw/master/IPBanCore/Linux/Scripts/Install.sh -O /usr/local/src/mystic/ipban-install.sh &>/dev/null
apt install -y fail2ban &>/dev/null
apt install -y iptables &>/dev/null
apt install -y ipset &>/dev/null
apt install -y xmlstarlet &>/dev/null
sed -i '/yum/d' /usr/local/src/mystic/ipban-install.sh &>/dev/null
sed -i '/systemctl/d' /usr/local/src/mystic/ipban-install.sh &>/dev/null
sed -e 's!sudo !!g' -i /usr/local/src/mystic/ipban-install.sh &>/dev/null
sed -e 's!-qq!-qqo!g' -i /usr/local/src/mystic/ipban-install.sh &>/dev/null
sed -i '/nano/d' /usr/local/src/mystic/ipban-install.sh &>/dev/null
bash /usr/local/src/mystic/ipban-install.sh &>/dev/null
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}"
#pushd /usr/local/src/mystic/mystic/ipban &>/dev/null
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
#popd &>/dev/null
#msg_ok "Installing Fail2Ban Scripts for ${APP}"
fi
#==============================================================================================================
if [ $DOSEMU = "Yes" ]; then
msg_info "Installing DosEmu2 Dependencies for ${APP}"
pushd /usr/local/src/mystic &>/dev/null
curl 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6d9cd73b401a130336ed0a56ebe1b5ded2ad45d6' | tee /etc/apt/trusted.gpg.d/code.launchpad.net-dosemu2.asc &>/dev/null
echo "deb https://ppa.launchpadcontent.net/dosemu2/ppa/ubuntu $DIST main" | tee /etc/apt/sources.list.d/dosemu2.list &>/dev/null
apt update &>/dev/null
apt install -y dosemu2 &>/dev/null
apt install -y install-otherdos &>/dev/null
#rm -rf /usr/local/src/mystic/IniMod_linux${INIMOD_ARCH} &>/dev/null
#mkdir -p /usr/local/src/mystic/IniMod_linux${INIMOD_ARCH} &>/dev/null
#pushd /usr/local/src/mystic/IniMod_linux${INIMOD_ARCH} &>/dev/null
#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"
#pushd /usr/local/src/mystic/mystic/dbp &>/dev/null
#bash install-${SCRIPT_VER}.sh $MYSTIC_DIR &>/dev/null
#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"
#==============================================================================================================
DBP_INFO=${MYSTIC_DIR}/docs/DbP-install.info
echo "==============================================================================================================" > ${DBP_INFO}
# Mystic install
source $MSTEMPDIR/mystic/mystic/info-${SCRIPT_VER}.sh
# Add Spellcheck
source $MSTEMPDIR/mystic/spellcheck/info-${SCRIPT_VER}.sh
# Add Multi Relay Chat Client
source $MSTEMPDIR/mystic/mrc-client/info-${SCRIPT_VER}.sh
# Add Multi Relay Chat Server
source $MSTEMPDIR/mystic/mrc-server/info-${SCRIPT_VER}.sh
# Add Cryptlib support
source $MSTEMPDIR/mystic/cryptlib/info-${SCRIPT_VER}.sh
# Add IP2Location
source $MSTEMPDIR/mystic/ip2location/info-${SCRIPT_VER}.sh
# Add DBP Scripts
source $MSTEMPDIR/mystic/dbp/info-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/fail2ban/info-${SCRIPT_VER}.sh
# Add Fail2ban | banip
source $MSTEMPDIR/mystic/dosemu2/info-${SCRIPT_VER}.sh
#==============================================================================================================
chown mystic:mystic -R ${MYSTIC_DIR} &>/dev/null
cat ${DBP_INFO}
echo "The Infos abouth has been put into ${DBP_INFO}"

8
ip2location/info-v1.sh Normal file
View File

@@ -0,0 +1,8 @@
if [ $IP2L = "Yes" ]; then
echo "IP2Location Downloader" >> ${DBP_INFO}
echo "With the downloader the IP2Location data of mystic can be updated" >> ${DBP_INFO}
echo "you will have to activate it in the ${MYSTIC_DIR}/dbp.ini" >> ${DBP_INFO}
echo "there youz have to add your ip2location API key and set the databse type" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -0,0 +1,14 @@
if [ $IP2L = "Yes" ]; then
msg_info "Setting up IP2Location Download Client for ${APP}"
apt install -y libwww-perl &>/dev/null
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
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

11
mrc-client/info-v1.sh Normal file
View File

@@ -0,0 +1,11 @@
if [ $MRCCLIENT = "Yes" ]; then
echo "" >> ${DBP_INFO}
echo "Multi Relay Chat" >> ${DBP_INFO}
echo "when you are using the mrc then activate the logrotate in the ${MYSTIC_DIR}/dbp.ini file" >> ${DBP_INFO}
echo "and set the wanted retentiontame for the logs" >> ${DBP_INFO}
echo "you will also have to set the cron script in the Mystic Event Editor" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "if you are runnign your own Multi Relay Chat Server you have to modify the ${MYSTIC_DIR}/mrc_client-start" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -1,11 +0,0 @@
#!/bin/bash
MYSTIC_DIR="$1"
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mrc_client-start.sh > ${MYSTIC_DIR}/mrc_client-start
chmod +x ${MYSTIC_DIR}/mrc_client-start
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mrc_client-stop.sh > ${MYSTIC_DIR}/mrc_client-stop
chmod +x ${MYSTIC_DIR}/mrc_client-stop
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mrc-client.service > /etc/systemd/system/mrc-client.service
systemctl daemon-reload

View File

@@ -1,3 +1,5 @@
MRC_VER="129a"
if [ $MRCCLIENT = "Yes" ]; then
msg_info "Setting up Multi Relay Chat for ${APP}"
apt install -y build-essential &>/dev/null
@@ -11,6 +13,7 @@ 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
mkdir -p ${MYSTIC_DIR}/data/mrc &>/dev/null
msg_ok "Setting up Multi Relay Chat for ${APP}"
msg_info "Installing Multi Relay Chat Systemd Start/Stop Scripts and Service File"

9
mrc-server/info-v1.sh Normal file
View File

@@ -0,0 +1,9 @@
if [ $MRCSERVER = "Yes" ]; then
echo "" >> ${DBP_INFO}
echo "Multi Relay Chat Server" >> ${DBP_INFO}
echo "when you are using the mrc then activate the logrotate in the ${MYSTIC_DIR}/dbp.ini file" >> ${DBP_INFO}
echo "and set the wanted retentiontame for the logs" >> ${DBP_INFO}
echo "you will also have to set the cron script in the Mystic Event Editor" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi

View File

@@ -1,3 +1,5 @@
MRC_SERVER_VER="v10"
if [ $MRCSERVER = "Yes" ]; then
msg_info "Setting up Multi Relay Chat Server for ${APP}"
apt install -y build-essential &>/dev/null
@@ -11,6 +13,7 @@ cp sysop.doc ${MYSTIC_DIR}/docs/mrc_server_sysop.doc
cp whatsnew.txt ${MYSTIC_DIR}/docs/mrc_server_whatsnew.txt
cp servers.lst ${MYSTIC_DIR}/docs/mrc_server_server.lst
popd &>/dev/null
mkdir -p ${MYSTIC_DIR}/data/mrc &>/dev/null
msg_ok "Setting up Multi Relay Chat Server for ${APP}"
msg_info "Installing Multi Relay Chat Server Systemd Start/Stop Scripts and Service File"

View File

@@ -27,7 +27,7 @@ fi
# Starting the MRC python script
cd $MRC_PATH >/dev/null
/usr/bin/python2 ./mrc_server.py $MRC_SERVER:$MRC_PORT > logs/mrcserver.log 2>&1 &
/usr/bin/python2 ./mrc_server.py $MRC_SERVER:$MRC_PORT > data/mrc/mrcserver.log 2>&1 &
cd - >/dev/null
# Wait 3 seconds and check for a PID

View File

@@ -0,0 +1,75 @@
msg_info "Correcting mutil.ini & mide.ini hardcoded paths"
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
msg_ok "Correcting mutil.ini & mide.ini hardcoded paths"
msg_info "SPlitting mutil.ini into it's parts for later merge"
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')
cat ${MYSTIC_DIR}/mutil.ini | sed -n '/\[EchoUnlink\]/, /\[/p' | sed '$d' > ${MUTIL_DIR}/EchoUnlink
#cat ${MYSTIC_DIR}/mutil.ini | sed -n '/\[EchoUnlink\]/, $p' | sed '$d' > ${MUTIL_DIR}/EchoUnlink
configarray+=('EchoUnlink')
msg_ok "SPlitting mutil.ini into it's parts for later merge"
source $MSTEMPDIR/mystic/mystic/maint-${SCRIPT_VER}.sh
source $MSTEMPDIR/mystic/mystic/mailout-${SCRIPT_VER}.sh
source $MSTEMPDIR/mystic/mystic/mailin-${SCRIPT_VER}.sh
source $MSTEMPDIR/mystic/mystic/importna-${SCRIPT_VER}.sh
msg_info "Correcting Linefeed for docs and Setting permissions"
dos2unix ${MYSTIC_DIR}/docs/ &>/dev/null
chown mystic:mystic -R ${MYSTIC_DIR} &>/dev/null
msg_ok "Correcting Linefeed for docs and Setting permissions"

19
mystic/importna-v1.sh Normal file
View File

@@ -0,0 +1,19 @@
pushd ${MUTIL_DIR} &>/dev/null
configfile="importna.ini"
config=('Import_FIDONET.NA' 'Import_FILEBONE.NA')
msg_info "Merging ${config} into ${configfile}"
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
msg_ok "Merging ${config} into ${configfile}"
popd &>/dev/null

10
mystic/info-v1.sh Normal file
View File

@@ -0,0 +1,10 @@
PYTHON2=$(ls /usr/lib/x86_64-linux-gnu/libpython2*.so.1)
PYTHON3=$(ls /usr/lib/x86_64-linux-gnu/libpython3*.so.1)
echo "" >> ${DBP_INFO}
echo "Settings in Mystic General Settings" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "Python2 Library: $PYTHON2" >> ${DBP_INFO}
echo "Python3 Library: $PYTHON3" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}

View File

@@ -1,11 +0,0 @@
#!/bin/bash
MYSTIC_DIR="$1"
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mis-start.sh > ${MYSTIC_DIR}/mis-start
chmod +x ${MYSTIC_DIR}/mis-start
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mis-stop.sh > ${MYSTIC_DIR}/mis-stop
chmod +x ${MYSTIC_DIR}/mis-stop
sed -e "s!@MYSTIC_DIR@!${MYSTIC_DIR}!g" mis.service > /etc/systemd/system/mis.service
systemctl daemon-reload

View File

@@ -1,3 +1,5 @@
MYSTIC_VER="112a48"
echo -e "Plz set the install dir the same as bevor"
echo -e "${DGN}Install Mystic to: ${BGN}$MYSTIC_DIR${CL}"
read -p "Press enter to continue"
@@ -20,6 +22,11 @@ chmod +x install &>/dev/null
popd &>/dev/null
msg_ok "Finisched ${APP} Installation"
pushd ${MYSTIC_DIR} &>/dev/null
apt install -y patch &>/dev/null
patch -p0 -i $MSTEMPDIR/mystic/mystic/patches/mutil-ini-echounlink.patch &>/dev/null
popd &>/dev/null
msg_info "Creating ${APP} und setting Permissions in ${MYSTIC_DIR}"
if [ -z "${GROUP}" ]; then
groupadd mystic &>/dev/null

19
mystic/mailin-v1.sh Normal file
View File

@@ -0,0 +1,19 @@
pushd ${MUTIL_DIR} &>/dev/null
configfile="mailin.ini"
config=('ImportEchoMail' 'FileToss')
msg_info "Merging ${config} into ${configfile}"
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
msg_ok "Merging ${config} into ${configfile}"
popd &>/dev/null

19
mystic/mailout-v1.sh Normal file
View File

@@ -0,0 +1,19 @@
pushd ${MUTIL_DIR} &>/dev/null
configfile="mailout.ini"
config=('ExportEchoMail')
msg_info "Merging ${config} into ${configfile}"
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
msg_ok "Merging ${config} into ${configfile}"
popd &>/dev/null

18
mystic/maint-v1.sh Normal file
View File

@@ -0,0 +1,18 @@
pushd ${MUTIL_DIR} &>/dev/null
configfile="maint.ini"
config=('PurgeMessageBases' 'PackMessageBases' 'MergeNodeLists' 'PackFileBases' 'PurgeUserBase' 'PackUserBase' 'FileSort')
msg_info "Merging ${config} into ${configfile}"
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
msg_ok "Merging ${config} into ${configfile}"
popd &>/dev/null

View File

@@ -0,0 +1,11 @@
--- mutil.ini.orig 2024-04-20 17:45:32.524198915 +0200
+++ mutil.ini 2024-04-20 17:46:33.856286306 +0200
@@ -80,7 +80,7 @@
PackUserBase = false
AutoHatch = false
EchoNodeTracker = false
-
+ EchoUnlink = false
; Set this value if you want to run mutil from a directory other than
; the root Mystic directory or the mysticbbs environment variable:

10
spellcheck/info-v1.sh Normal file
View File

@@ -0,0 +1,10 @@
if [ $SPELL = "Yes" ]; then
echo "" >> ${DBP_INFO}
echo "More infos about the Spellcheck can be found in the" >> ${DBP_INFO}
echo "${MYSTIC_DIR}/docs/Spellcheck_README.txt" >> ${DBP_INFO}
echo "Also in" >> ${DBP_INFO}
echo "${MYSTIC_DIR}/data/dictlist.txt" >> ${DBP_INFO}
echo "you can add additional Hunspell compatible dictionaries" >> ${DBP_INFO}
echo "" >> ${DBP_INFO}
echo "==============================================================================================================" >> ${DBP_INFO}
fi