1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/endi_ynh.git synced 2024-09-03 18:35:54 +02:00

Write helpers to move code to _common.sh

This commit is contained in:
Salamandar 2023-01-19 20:29:54 +01:00 committed by Félix Piédallu
parent 4c84f00654
commit a78a92b8d6
2 changed files with 60 additions and 41 deletions

View file

@ -30,6 +30,62 @@ pkg_dependencies=(
# PERSONAL HELPERS # PERSONAL HELPERS
#================================================= #=================================================
__ynh_endi_patch_src() {
# Patching requirements.txt to use system provided Cython
cython_version=$(cython3 --version 2>&1 | sed 's|Cython version ||')
sed -i "s|Cython=.*|Cython==$cython_version|" "$final_path/endi/requirements.txt"
}
__ynh_endi_build() {
#=================================================
# NPM setup
#=================================================
ynh_use_nodejs
ynh_install_nodejs --nodejs_version=16
pushd "$final_path/endi" 2>&1
ynh_script_progression --message="Downloading NPM dependencies..." --weight=1
ynh_exec_as $app $ynh_node_load_PATH $ynh_npm --prefix js_sources install 2>&1
ynh_exec_as $app $ynh_node_load_PATH $ynh_npm --prefix vue_sources install 2>&1
ynh_script_progression --message="Building Web interface code..." --weight=1
ynh_exec_as $app make prodjs devjs prodjs2 devjs2 2>&1 \
|| ynh_die --message="Build of javascript code failed, maybe because of high RAM usage!"
popd 2>&1
#=================================================
# Python + Virtualenv setup
#=================================================
ynh_script_progression --message="Installing Python dependencies and Endi..." --weight=1
__ynh_python_venv_setup --venv_dir="$final_path/venv"
python_venv_site_packages=$(__ynh_python_venv_get_site_packages_dir -d "$final_path/venv")
chown -R $app:www-data "$final_path/venv"
pushd "$final_path/endi" 2>&1
ynh_exec_as $app "$final_path/venv/bin/python3" ./setup.py install 2>&1
popd
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"
}
__ynh_endi_migratedb() {
ynh_exec_as $app "$final_path/venv/bin/endi-admin" "$final_path/endi.ini" \
syncdb
}
__ynh_endi_add_admin() {
ynh_exec_as $app "$final_path/venv/bin/endi-admin" "$final_path/endi.ini" \
useradd --group=admin --user="admin" --pwd="$password" --email="admin@$domain"
}
#=================================================
# Python Venv HELPERS
#=================================================
__ynh_python_venv_setup() { __ynh_python_venv_setup() {
local -A args_array=( [d]=venv_dir= [p]=packages= ) local -A args_array=( [d]=venv_dir= [p]=packages= )
local venv_dir local venv_dir

View file

@ -111,9 +111,7 @@ ynh_script_progression --message="Setting up source files..." --weight=1
ynh_app_setting_set --app=$app --key=final_path --value=$final_path ynh_app_setting_set --app=$app --key=final_path --value=$final_path
ynh_setup_source --dest_dir="$final_path/endi" ynh_setup_source --dest_dir="$final_path/endi"
# Patching requirements.txt to use system provided Cython __ynh_endi_patch_src
cython_version=$(cython3 --version 2>&1 | sed 's|Cython version ||')
sed -i "s|Cython=.*|Cython==$cython_version|" "$final_path/endi/requirements.txt"
chmod 750 "$final_path" chmod 750 "$final_path"
chmod -R o-rwx "$final_path" chmod -R o-rwx "$final_path"
@ -128,37 +126,8 @@ ynh_add_nginx_config
#================================================= #=================================================
# SPECIFIC SETUP # SPECIFIC SETUP
#================================================= #=================================================
# NPM setup
#=================================================
ynh_use_nodejs
ynh_install_nodejs --nodejs_version=16
pushd "$final_path/endi" 2>&1 __ynh_endi_build
ynh_script_progression --message="Downloading NPM dependencies..." --weight=1
ynh_exec_as $app $ynh_node_load_PATH $ynh_npm --prefix js_sources install 2>&1
ynh_exec_as $app $ynh_node_load_PATH $ynh_npm --prefix vue_sources install 2>&1
ynh_script_progression --message="Building Web interface code..." --weight=1
ynh_exec_as $app make prodjs devjs prodjs2 devjs2 2>&1 \
|| ynh_die --message="Build of javascript code failed, maybe because of high RAM usage!"
popd 2>&1
#=================================================
# Python + Virtualenv setup
#=================================================
ynh_script_progression --message="Installing Python dependencies and Endi..." --weight=1
__ynh_python_venv_setup --venv_dir="$final_path/venv"
python_venv_site_packages=$(__ynh_python_venv_get_site_packages_dir -d "$final_path/venv")
chown -R $app:www-data "$final_path/venv"
pushd "$final_path/endi" 2>&1
ynh_exec_as $app "$final_path/venv/bin/python3" ./setup.py install 2>&1
popd
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"
#================================================= #=================================================
# ADD A CONFIGURATION # ADD A CONFIGURATION
@ -183,14 +152,8 @@ ynh_add_systemd_config
#================================================= #=================================================
ynh_script_progression --message="Configuring enDI..." --weight=1 ynh_script_progression --message="Configuring enDI..." --weight=1
pushd "$final_path" 2>&1 __ynh_endi_migratedb
ynh_exec_as $app "$final_path/venv/bin/endi-admin" endi.ini syncdb __ynh_endi_add_admin
# ynh_exec_as $app "$final_path/venv/bin/endi-migrate" app.ini syncdb --pkg=endi_payment
ynh_exec_as $app "$final_path/venv/bin/endi-admin" endi.ini useradd --group=admin --user="admin" --pwd="$password" \
--email="admin@$domain"
popd 2>&1
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION