#! /bin/sh
## Writefreely wrapper for Docker
## Copyright (C) 2019 Gergely Nagy
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see .
set -e
cd /data
WRITEFREELY=/writefreely/writefreely
validate_url() {
URL="$1"
if echo "$URL" | grep -Eq "^https?://[a-zA-Z0-9._-]+"; then
return 0 # Success
else
return 1 # Failure
fi
}
# Validate WRITEFREELY_HOST
if ! validate_url "$WRITEFREELY_HOST"; then
echo "Error: $WRITEFREELY_HOST is not a valid URL. It must start with http:// or https:// and be followed by a valid hostname."
exit 1
fi
if [ -e ./config.ini ] && [ -e ./keys/email.aes256 ]; then
${WRITEFREELY} -migrate
exec ${WRITEFREELY}
fi
if [ -e ./config.ini ]; then
until ${WRITEFREELY} --init-db; do
echo "Retrying --init-db..."
sleep 5
done
${WRITEFREELY} -gen-keys
exec ${WRITEFREELY}
fi
WRITEFREELY_BIND_PORT="${WRITEFREELY_BIND_PORT:-8080}"
WRITEFREELY_BIND_HOST="${WRITEFREELY_BIND_HOST:-0.0.0.0}"
WRITEFREELY_SITE_NAME="${WRITEFREELY_SITE_NAME:-A Writefreely blog}"
WRITEFREELY_SITE_DESCRIPTION="${WRITEFREELY_SITE_DESCRIPTION:-My Writefreely blog}"
cat >./config.ini <