117 lines
3.1 KiB
Bash
Executable File
117 lines
3.1 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
php_conf_dir="/usr/local/etc/php/conf.d"
|
|
php_conf_file="${php_conf_dir}/zz-qni-runtime-limits.ini"
|
|
entrypoint_hooks_dir="/docker-entrypoint-hooks.d"
|
|
empty_skeleton_dir="${NUQLOUD_EMPTY_SKELETON_DIR:-/var/www/html/data/nuqloud-empty-skeleton}"
|
|
|
|
mkdir -p "${php_conf_dir}"
|
|
|
|
normalize_php_ini_size() {
|
|
raw_value="$(printf '%s' "${1:-}" | tr -d '[:space:]')"
|
|
if [ -z "${raw_value}" ]; then
|
|
printf '%s' ""
|
|
return 0
|
|
fi
|
|
|
|
lower_value="$(printf '%s' "${raw_value}" | tr '[:upper:]' '[:lower:]')"
|
|
if [ "${lower_value}" = "-1" ]; then
|
|
printf '%s' "-1"
|
|
return 0
|
|
fi
|
|
|
|
parsed_value="$(printf '%s' "${lower_value}" | sed -nE 's/^([0-9]+)([kmgtp]?)(i?b?)?$/\1|\2/p')"
|
|
if [ -n "${parsed_value}" ]; then
|
|
numeric_part="${parsed_value%%|*}"
|
|
unit_part="${parsed_value#*|}"
|
|
case "${unit_part}" in
|
|
"")
|
|
printf '%s' "${numeric_part}"
|
|
return 0
|
|
;;
|
|
k)
|
|
printf '%s' "${numeric_part}K"
|
|
return 0
|
|
;;
|
|
m)
|
|
printf '%s' "${numeric_part}M"
|
|
return 0
|
|
;;
|
|
g)
|
|
printf '%s' "${numeric_part}G"
|
|
return 0
|
|
;;
|
|
t)
|
|
printf '%s' "${numeric_part}T"
|
|
return 0
|
|
;;
|
|
p)
|
|
printf '%s' "${numeric_part}P"
|
|
return 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
printf '%s' "${raw_value}"
|
|
}
|
|
|
|
upload_limit="${NEXTCLOUD_PHP_UPLOAD_MAX_FILESIZE:-${PHP_UPLOAD_MAX_FILESIZE:-5G}}"
|
|
post_limit="${NEXTCLOUD_PHP_POST_MAX_SIZE:-${PHP_POST_MAX_SIZE:-5G}}"
|
|
memory_limit_value="${NEXTCLOUD_PHP_MEMORY_LIMIT:-${PHP_MEMORY_LIMIT:-}}"
|
|
|
|
upload_limit="$(normalize_php_ini_size "${upload_limit}")"
|
|
post_limit="$(normalize_php_ini_size "${post_limit}")"
|
|
memory_limit_value="$(normalize_php_ini_size "${memory_limit_value}")"
|
|
|
|
{
|
|
echo '; Generated by qni-nextcloud-entrypoint.sh'
|
|
if [ -n "${upload_limit}" ]; then
|
|
echo "upload_max_filesize=${upload_limit}"
|
|
fi
|
|
if [ -n "${post_limit}" ]; then
|
|
echo "post_max_size=${post_limit}"
|
|
fi
|
|
if [ -n "${memory_limit_value}" ]; then
|
|
echo "memory_limit=${memory_limit_value}"
|
|
fi
|
|
} > "${php_conf_file}"
|
|
|
|
if [ "${NUQLOUD_DISABLE_DEFAULT_SKELETON:-1}" != "0" ]; then
|
|
mkdir -p \
|
|
"${entrypoint_hooks_dir}/pre-installation" \
|
|
"${entrypoint_hooks_dir}/before-starting"
|
|
|
|
for hook_file in \
|
|
"${entrypoint_hooks_dir}/pre-installation/10-qni-empty-skeleton.sh" \
|
|
"${entrypoint_hooks_dir}/before-starting/10-qni-empty-skeleton.sh"; do
|
|
cat > "${hook_file}" <<'EOF'
|
|
#!/bin/sh
|
|
set -eu
|
|
|
|
empty_skeleton_dir="${NUQLOUD_EMPTY_SKELETON_DIR:-/var/www/html/data/nuqloud-empty-skeleton}"
|
|
config_dir="/var/www/html/config"
|
|
config_file="${config_dir}/nuqloud-skeleton.config.php"
|
|
|
|
mkdir -p "${empty_skeleton_dir}" "${config_dir}"
|
|
find "${empty_skeleton_dir}" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
|
|
chown -R www-data:www-data "${empty_skeleton_dir}" 2>/dev/null || true
|
|
|
|
cat > "${config_file}" <<PHP
|
|
<?php
|
|
\$CONFIG = [
|
|
'skeletondirectory' => '${empty_skeleton_dir}',
|
|
];
|
|
PHP
|
|
chown www-data:www-data "${config_file}" 2>/dev/null || true
|
|
EOF
|
|
chmod 0755 "${hook_file}"
|
|
done
|
|
fi
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
exec /entrypoint.sh apache2-foreground
|
|
fi
|
|
|
|
exec /entrypoint.sh "$@"
|