2020-05-26 22:28:47 -04:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
SERVER_ARGS=""
|
|
|
|
|
|
|
|
# Defaults
|
|
|
|
PORT=${PORT:-70}
|
|
|
|
LOG_FILE=${LOG_FILE:-/var/log/gophernicus.log}
|
|
|
|
GOPHER_ROOT=${GOPHER_ROOT:-/var/gopher}
|
|
|
|
|
|
|
|
# Arguments
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${PORT} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -p ${PORT}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${TLS_PORT} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -T ${TLS_PORT}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${GOPHER_ROOT} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -r ${GOPHER_ROOT}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DEFAULT_FILE_TYPE} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -t ${DEFAULT_FILE_TYPE}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${GOPHER_MAPFILE} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -g ${GOPHER_MAPFILE}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${GOPHER_TAGFILE} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -a ${GOPHER_TAGFILE}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${CGI_DIR} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -c ${CGI_DIR}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${USER_DIR} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -u ${USER_DIR}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${LOG_FILE} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -l ${LOG_FILE}"
|
|
|
|
mkdir -p "$(dirname ${LOG_FILE})"
|
|
|
|
touch "${LOG_FILE}"
|
|
|
|
chown nobody.nobody "${LOG_FILE}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DEFAULT_WIDTH} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -w ${DEFAULT_WIDTH}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DEFAULT_CHARSET} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -o ${DEFAULT_CHARSET}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${SESSION_TIMEOUT} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -s ${SESSION_TIMEOUT}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${MAX_HITS} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -i ${MAX_HITS}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${MAX_TRANSFER_KB} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -k ${MAX_TRANSFER_KB}"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${FILTER_DIR} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -f ${FILTER_DIR}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Booleans
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_VHOSTS} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nv"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_PARENT_DIR_LINKS} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nl"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_HEADER} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nh"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_FOOTER} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nf"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_MENU_METADATA} ]; then
|
2020-05-26 22:28:47 -04:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nd"
|
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_CONTENT_DETECTION} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nc"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_CHARSET_CONV} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -no"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_QUERY_STRINGS} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nq"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_SYSLOG} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -ns"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_AUTOGEN_CAPS} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -na"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_SERVER_STATUS} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nt"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_HAPROXY} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -np"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_EXECUTABLES} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nx"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
2020-05-27 00:16:23 -04:00
|
|
|
if [ ${DISABLE_USERDIRS} ]; then
|
2022-11-24 19:32:08 +01:00
|
|
|
SERVER_ARGS="${SERVER_ARGS} -nu"
|
2020-05-26 22:28:47 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Write out our gophernicus xinetd configuration with all our server arguments
|
|
|
|
cat << EOF > /etc/xinetd.d/gophernicus
|
|
|
|
# default: on
|
|
|
|
# description: Gophernicus - Modern full-featured gopher server
|
|
|
|
service gopher
|
|
|
|
{
|
|
|
|
socket_type = stream
|
|
|
|
protocol = tcp
|
|
|
|
port = ${PORT}
|
|
|
|
wait = no
|
|
|
|
user = nobody
|
|
|
|
server = /usr/sbin/gophernicus
|
|
|
|
server_args = ${SERVER_ARGS}
|
|
|
|
disable = no
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Kick off xinetd to start serving gophernicus
|
|
|
|
/usr/sbin/xinetd
|
|
|
|
|
|
|
|
# Give us some logs on stdout
|
|
|
|
tail -f ${LOG_FILE}
|