2020-12-12 19:37:20 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
#=================================================
|
|
|
|
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
|
|
|
#=================================================
|
|
|
|
|
2023-04-02 20:15:56 +02:00
|
|
|
# Transfer the main SSO domain to the App:
|
|
|
|
ynh_current_host=$(cat /etc/yunohost/current_host)
|
|
|
|
__YNH_CURRENT_HOST__=${ynh_current_host}
|
|
|
|
|
2022-09-18 19:00:39 +02:00
|
|
|
#=================================================
|
|
|
|
# ARGUMENTS FROM CONFIG PANEL
|
|
|
|
#=================================================
|
|
|
|
|
|
|
|
# 'debug_enabled' -> '__DEBUG_ENABLED__' -> settings.DEBUG
|
2023-11-26 13:06:24 +01:00
|
|
|
debug_enabled="0" # "1" or "0" string
|
2022-09-18 19:00:39 +02:00
|
|
|
|
|
|
|
# 'log_level' -> '__LOG_LEVEL__' -> settings.LOG_LEVEL
|
|
|
|
log_level="WARNING"
|
|
|
|
|
|
|
|
# 'admin_email' -> '__ADMIN_EMAIL__' add in settings.ADMINS
|
|
|
|
admin_email="${admin}@${domain}"
|
|
|
|
|
|
|
|
# 'default_from_email' -> '__DEFAULT_FROM_EMAIL__' -> settings.DEFAULT_FROM_EMAIL
|
|
|
|
default_from_email="${app}@${domain}"
|
|
|
|
|
2020-12-12 19:37:20 +01:00
|
|
|
#=================================================
|
|
|
|
# SET CONSTANTS
|
|
|
|
#=================================================
|
|
|
|
|
2023-11-09 20:37:13 +01:00
|
|
|
# e.g.: point pip cache to: /home/yunohost.app/$app/.cache/
|
|
|
|
XDG_CACHE_HOME="$data_dir/.cache/"
|
|
|
|
|
2020-12-12 19:37:20 +01:00
|
|
|
log_path=/var/log/$app
|
2022-09-18 19:00:39 +02:00
|
|
|
log_file="${log_path}/${app}.log"
|
2020-12-12 19:37:20 +01:00
|
|
|
|
|
|
|
#=================================================
|
2023-11-09 20:37:13 +01:00
|
|
|
# HELPERS
|
2020-12-12 19:37:20 +01:00
|
|
|
#=================================================
|
|
|
|
|
2024-08-02 19:26:30 +02:00
|
|
|
|
|
|
|
#==================================================================================
|
|
|
|
# Until we get a newer Python in YunoHost, see:
|
|
|
|
# https://forum.yunohost.org/t/use-newer-python-than-3-9/22568
|
|
|
|
#==================================================================================
|
2024-08-27 16:27:02 +02:00
|
|
|
PY_REQUIRED_MAJOR=3.11
|
2024-08-02 19:26:30 +02:00
|
|
|
|
|
|
|
myynh_install_python() {
|
2024-08-27 16:27:02 +02:00
|
|
|
ynh_print_info --message="Install latest Python v${PY_REQUIRED_MAJOR}..."
|
|
|
|
|
|
|
|
ynh_exec_warn_less python3 "$data_dir/install_python.py" -vv ${PY_REQUIRED_MAJOR}
|
|
|
|
py_app_version=$(python3 "$data_dir/install_python.py" ${PY_REQUIRED_MAJOR})
|
2024-08-25 18:04:22 +02:00
|
|
|
|
|
|
|
# Print some version information:
|
|
|
|
ynh_print_info --message="Python version: $($py_app_version -VV)"
|
|
|
|
ynh_print_info --message="Pip version: $($py_app_version -m pip -V)"
|
2024-08-02 19:26:30 +02:00
|
|
|
}
|
|
|
|
#==================================================================================
|
|
|
|
#==================================================================================
|
|
|
|
|
2023-11-09 20:37:13 +01:00
|
|
|
myynh_setup_python_venv() {
|
2024-08-25 18:04:22 +02:00
|
|
|
# Install Python if needed:
|
2024-08-27 16:27:02 +02:00
|
|
|
myynh_install_python
|
2024-08-02 19:26:30 +02:00
|
|
|
|
|
|
|
# Create a virtualenv with python installed by myynh_install_python():
|
2023-11-09 20:37:13 +01:00
|
|
|
# Skip pip because of: https://github.com/YunoHost/issues/issues/1960
|
2024-08-25 18:04:22 +02:00
|
|
|
ynh_exec_as $app $py_app_version -m venv --clear --upgrade-deps "$data_dir/venv"
|
2023-11-09 20:37:13 +01:00
|
|
|
|
2024-08-25 18:04:22 +02:00
|
|
|
# Print some version information:
|
|
|
|
ynh_print_info --message="venv Python version: $($data_dir/venv/bin/python3 -VV)"
|
|
|
|
ynh_print_info --message="venv Pip version: $($data_dir/venv/bin/python3 -m pip -V)"
|
2023-11-09 20:37:13 +01:00
|
|
|
|
|
|
|
# run source in a 'sub shell'
|
|
|
|
(
|
|
|
|
set +o nounset
|
|
|
|
source "$data_dir/venv/bin/activate"
|
|
|
|
set -o nounset
|
|
|
|
set -x
|
2024-08-25 18:04:22 +02:00
|
|
|
ynh_exec_as $app $data_dir/venv/bin/pip3 install --upgrade pip wheel setuptools
|
2023-11-09 20:37:13 +01:00
|
|
|
ynh_exec_as $app $data_dir/venv/bin/pip3 install --no-deps -r "$data_dir/requirements.txt"
|
|
|
|
)
|
|
|
|
}
|
2022-09-19 09:01:26 +02:00
|
|
|
|
2023-11-09 20:37:13 +01:00
|
|
|
myynh_setup_log_file() {
|
|
|
|
(
|
|
|
|
set -x
|
2022-09-19 09:01:26 +02:00
|
|
|
|
2023-11-09 20:37:13 +01:00
|
|
|
mkdir -p "$(dirname "$log_file")"
|
|
|
|
touch "$log_file"
|
2022-09-19 09:01:26 +02:00
|
|
|
|
2023-11-09 20:37:13 +01:00
|
|
|
chown -c -R $app:$app "$log_path"
|
|
|
|
chmod -c o-rwx "$log_path"
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
myynh_fix_file_permissions() {
|
|
|
|
(
|
|
|
|
set -x
|
|
|
|
|
|
|
|
# /var/www/$app/
|
|
|
|
chown -c -R "$app:www-data" "$install_dir"
|
|
|
|
chmod -c o-rwx "$install_dir"
|
|
|
|
|
|
|
|
# /home/yunohost.app/$app/
|
|
|
|
chown -c -R "$app:" "$data_dir"
|
|
|
|
chmod -c o-rwx "$data_dir"
|
|
|
|
)
|
|
|
|
}
|