mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
When the chasquid docker container is restarted, entrypoint.sh will add the hostname again, even if it is present. This causes chasquid to fail to start due to the duplicated option (`non-repeated field "hostname" is repeated`). Thanks to Jaywann@github for finding and reporting this problem, on https://github.com/albertito/chasquid/issues/16. This patch fixes the issue by only adding the option if it isn't already present.
45 lines
986 B
Bash
Executable File
45 lines
986 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Creates a user. If it exists, updates the password.
|
|
#
|
|
# Note this is not robust, it's only for convenience on extremely simple
|
|
# setups.
|
|
|
|
set -e
|
|
|
|
read -p "Email (full user@domain format): " EMAIL
|
|
|
|
if ! echo "${EMAIL}" | grep -q @; then
|
|
echo "Error: email should have '@'."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
read -p "Password: " -s PASSWORD
|
|
echo
|
|
|
|
DOMAIN=$(echo echo "${EMAIL}" | cut -d '@' -f 2)
|
|
|
|
|
|
# If the domain doesn't exist in chasquid's config, create it.
|
|
mkdir -p "/data/chasquid/domains/${DOMAIN}/"
|
|
|
|
|
|
# Encrypt password.
|
|
ENCPASS=$(doveadm pw -u "${EMAIL}" -p "${PASSWORD}")
|
|
|
|
# Edit dovecot users: remove user if it exits.
|
|
mkdir -p /data/dovecot
|
|
touch /data/dovecot/users
|
|
if grep -q "^${EMAIL}:" /data/dovecot/users; then
|
|
cp /data/dovecot/users /data/dovecot/users.old
|
|
cat /data/dovecot/users.old | grep -v "^${EMAIL}:" \
|
|
> /data/dovecot/users
|
|
fi
|
|
|
|
# Edit dovecot users: add user.
|
|
echo "${EMAIL}:${ENCPASS}::::" >> /data/dovecot/users
|
|
|
|
echo "${EMAIL} added to /data/dovecot/users"
|
|
|