ejabberd - Add dependency for mysql and modernize code
This commit is contained in:
@@ -1,22 +1,26 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2154 # Variable referenced but not assigned (seq_origin)
|
||||||
|
|
||||||
toolName=ejabberd
|
readonly toolName=ejabberd
|
||||||
toolConfLoc="/etc/ejabberd/ejabberd.yml"
|
readonly toolDeps=(ejabberd erlang-p1-mysql)
|
||||||
toolAdminConf="/etc/ejabberd/ejabberdctl.cfg"
|
readonly toolConfLoc="/etc/ejabberd/ejabberd.yml"
|
||||||
|
readonly toolAdminConf="/etc/ejabberd/ejabberdctl.cfg"
|
||||||
# for http upload
|
# for http upload
|
||||||
toolStorageLoc="/var/ejabberd"
|
readonly toolStorageLoc="/var/ejabberd"
|
||||||
certRoot="/etc/letsencrypt"
|
readonly certRoot="/etc/letsencrypt"
|
||||||
|
|
||||||
# needed for different steps
|
# needed for different steps
|
||||||
myDomain=
|
myDomain=
|
||||||
myUser=
|
myUser=
|
||||||
myPass=
|
myPass=
|
||||||
|
|
||||||
|
seq_trapExit() { unset myPass; }
|
||||||
|
|
||||||
step_1_info() { echo "Install $toolName via apt"; }
|
step_1_info() { echo "Install $toolName via apt"; }
|
||||||
step_1_alias() { echo "install"; }
|
step_1_alias() { echo "install"; }
|
||||||
step_1() {
|
step_1() {
|
||||||
exe apt update
|
exe apt update
|
||||||
exe apt install -y $toolName
|
exe apt install -y "${toolDeps[@]}"
|
||||||
exe systemctl stop $toolName
|
exe systemctl stop $toolName
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,13 +49,13 @@ step_2() {
|
|||||||
|
|
||||||
step_3_info() { echo "Create basic configuration"; }
|
step_3_info() { echo "Create basic configuration"; }
|
||||||
step_3() {
|
step_3() {
|
||||||
if [ ! -f $SEQDIR/ejabberd.yml ] ; then
|
if [ ! -f "${seq_origin}/ejabberd.yml" ] ; then
|
||||||
addConf -m "$MissingConfEntry" "$toolConfLoc"
|
addConf -m "$MissingConfEntry" "$toolConfLoc"
|
||||||
else
|
else
|
||||||
readDomain
|
readDomain
|
||||||
echo -e "\nThis user will be the admin:"
|
echo -e "\nThis user will be the admin:"
|
||||||
readUser
|
readUser
|
||||||
addConf -c "$(cat $SEQDIR/ejabberd.yml)" "$toolConfLoc"
|
addConf -cf "${seq_origin}/ejabberd.yml" "$toolConfLoc"
|
||||||
# modify configuration
|
# modify configuration
|
||||||
exe sed -i "s/mydomain\.eu/${myDomain}/" "$toolConfLoc"
|
exe sed -i "s/mydomain\.eu/${myDomain}/" "$toolConfLoc"
|
||||||
exe sed -i "s/myuser/${myUser}/" "$toolConfLoc"
|
exe sed -i "s/myuser/${myUser}/" "$toolConfLoc"
|
||||||
@@ -64,7 +68,7 @@ step_3() {
|
|||||||
exe sed -i "s/#\(INET_DIST_INTERFACE=127\.0\.0\.1\)/\1/" "$toolAdminConf"
|
exe sed -i "s/#\(INET_DIST_INTERFACE=127\.0\.0\.1\)/\1/" "$toolAdminConf"
|
||||||
}
|
}
|
||||||
|
|
||||||
MissingConfEntry="Seq's basic configuration file \"$SEQDIR/ejabberd.yml\" missing.
|
MissingConfEntry="Seq's basic configuration file \"${seq_origin}/ejabberd.yml\" missing.
|
||||||
Backup $toolConfLoc and create a configuration manually.
|
Backup $toolConfLoc and create a configuration manually.
|
||||||
|
|
||||||
Some essential settings needed:
|
Some essential settings needed:
|
||||||
@@ -83,14 +87,14 @@ step_5() {
|
|||||||
readDomain
|
readDomain
|
||||||
readUser
|
readUser
|
||||||
readUserPass
|
readUserPass
|
||||||
exe ejabberdctl register $myUser $myDomain $myPass
|
exe ejabberdctl register "${myUser}" "${myDomain}" "${myPass}"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_10_info() { echo "List existing user"; }
|
step_10_info() { echo "List existing user"; }
|
||||||
step_10_alias() { echo "listuser"; }
|
step_10_alias() { echo "listuser"; }
|
||||||
step_10() {
|
step_10() {
|
||||||
readDomain
|
readDomain
|
||||||
exe ejabberdctl registered_users $myDomain
|
exe ejabberdctl registered_users "${myDomain}"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_12_info() { echo "Change password for existing user"; }
|
step_12_info() { echo "Change password for existing user"; }
|
||||||
@@ -99,7 +103,7 @@ step_12() {
|
|||||||
readDomain
|
readDomain
|
||||||
readUser
|
readUser
|
||||||
readUserPass
|
readUserPass
|
||||||
exe ejabberdctl change_password $myUser $myDomain $myPass
|
exe ejabberdctl change_password "${myUser}" "${myDomain}" "${myPass}"
|
||||||
}
|
}
|
||||||
|
|
||||||
step_14_info() { echo "Remove registered user"; }
|
step_14_info() { echo "Remove registered user"; }
|
||||||
@@ -108,40 +112,43 @@ step_14() {
|
|||||||
readDomain
|
readDomain
|
||||||
readUser
|
readUser
|
||||||
readUserPass
|
readUserPass
|
||||||
exe ejabberdctl unregister $myUser $myDomain $myPass
|
exe ejabberdctl unregister "${myUser}" "${myDomain}" "${myPass}"
|
||||||
}
|
}
|
||||||
|
|
||||||
readDomain() {
|
readDomain() {
|
||||||
if [ "$myDomain" == "" ] ; then
|
if [ "$myDomain" == "" ] ; then
|
||||||
read -p "Enter your domain: " myDomain
|
myDomain=$(ask "Enter your domain: ")
|
||||||
endIfEmpty myDomain "$toolName domain"
|
endIfEmpty myDomain "$toolName domain"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
readUser() {
|
readUser() {
|
||||||
echo -e "\nDon't use spaces in user name!"
|
sqr::echo -e "\nDon't use spaces in user name!"
|
||||||
if [ "$myUser" == "" ] ; then
|
if [ "$myUser" == "" ] ; then
|
||||||
read -p "Enter user name: " myUser
|
myUser=$(ask "Enter user name: ")
|
||||||
echo
|
sqr::echo
|
||||||
endIfEmpty myUser "$toolName user name"
|
endIfEmpty myUser "$toolName user name"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
readUserPass() {
|
readUserPass() {
|
||||||
echo -e "\nDon't use spaces in user password!"
|
local myPass2=
|
||||||
if [ "$myPass" == "" ] ; then
|
sqr::echo -e "\nDon't use spaces in user password!"
|
||||||
read -s -p "Enter user password: " myPass
|
if [ -z "$myPass" ] ; then
|
||||||
echo
|
myPass=$(ask -s "Enter user password: "); echo
|
||||||
read -s -p "Enter user password again: " myPass2
|
sqr::echo
|
||||||
echo
|
myPass2=$(ask -s "Enter user password again: "); echo
|
||||||
|
sqr::echo
|
||||||
if [ "$myPass" != "$myPass2" ] ; then
|
if [ "$myPass" != "$myPass2" ] ; then
|
||||||
echo "[ERROR] Passwords don't match"
|
error "Passwords don't match"
|
||||||
return 1;
|
return 1;
|
||||||
fi
|
fi
|
||||||
|
unset myPass2
|
||||||
endIfEmpty myPass "$toolName user password"
|
endIfEmpty myPass "$toolName user password"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
SEQDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >>/dev/null 2>&1 && pwd )"
|
# shellcheck disable=SC2034 # Appears unused
|
||||||
readonly sqr_minVersion=16
|
readonly sqr_minVersion=16
|
||||||
. sequencer.sh
|
# shellcheck disable=SC1091 # Don't follow this source
|
||||||
|
. /usr/local/bin/sequencer.sh
|
||||||
|
Reference in New Issue
Block a user