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

Wrapper to exec_as with ruby and node in env

This commit is contained in:
Félix Piédallu 2024-08-30 11:22:21 +02:00
parent 8b79775e15
commit 74f05908e4
4 changed files with 24 additions and 20 deletions

View file

@ -14,6 +14,10 @@ libjemalloc="$(ldconfig -p | grep libjemalloc | awk 'END {print $NF}')"
# PERSONAL HELPERS
#=================================================
_exec_as_app_with_ruby_node() {
ynh_exec_as "$app" -E env PATH="$nodejs_path:$ruby_path:$PATH" "$@"
}
# Returns true if a swap partition is enabled, false otherwise
# usage: is_swap_present
is_swap_present() {

View file

@ -46,15 +46,15 @@ UPDATE site_settings SET value = '${new_path}' WHERE name='long_polling_base_url
ynh_use_ruby
# Remap URLs in forum posts
ynh_exec_as "$app" --login RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec script/discourse remap "$old_relative_url_root/uploads" "$new_relative_url_root/uploads" <<< "YES
_exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec script/discourse remap "$old_relative_url_root/uploads" "$new_relative_url_root/uploads" <<< "YES
# "
pushd "$install_dir/discourse"
# Regenerate assets
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/rake assets:precompile
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production bin/rake assets:precompile
# Regenerate all forum posts
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production bin/rake posts:rebake
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production bin/rake posts:rebake
popd
#=================================================

View file

@ -131,21 +131,21 @@ pushd "$install_dir/discourse"
if dpkg --print-architecture | grep -q "arm"; then
# Define the platform specifically to retrieve binaries
# for libv8 because it currently doesn't compile on ARM devices
ynh_exec_as "$app" -E "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
fi
# Install dependencies
ynh_exec_as "$app" -E "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
ynh_exec_as "$app" -E "$install_dir/discourse/bin/bundle" config set without test development
ynh_exec_as "$app" -E MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set without test development
_exec_as_app_with_ruby_node MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
popd
pushd "$install_dir/discourse"
ynh_use_nodejs
ynh_npm install --location=global terser
ynh_npm install --location=global uglify-js
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn install --frozen-lockfile
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn cache clean
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn install --frozen-lockfile
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn cache clean
popd
#=================================================
@ -154,8 +154,8 @@ popd
ynh_script_progression --message="Preparing the database..."
pushd "$install_dir/discourse"
ynh_exec_warn_less ynh_exec_as "$app" -E RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
ynh_exec_warn_less ynh_exec_as "$app" -E RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
popd
# Set default data (especially to have correct image URLs for subfolder install)
@ -169,7 +169,7 @@ ynh_secure_remove --file="$install_dir/provisioning.sql"
ynh_script_progression --message="Creating Discourse admin user..."
pushd "$install_dir/discourse"
ynh_exec_as "$app" -E RAILS_ENV=production bin/rake admin:create <<< "$admin_mail
_exec_as_app_with_ruby_node RAILS_ENV=production bin/rake admin:create <<< "$admin_mail
$admin_pwd
$admin_pwd
y

View file

@ -152,13 +152,13 @@ popd
if dpkg --print-architecture | grep -q "arm"; then
# Define the platform specifically to retrieve binaries
# for libv8 because it currently doesn't compile on ARM devices
ynh_exec_as "$app" --login "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config specific_platform arm-linux
fi
# Install dependencies
ynh_exec_as "$app" --login "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
ynh_exec_as "$app" --login "$install_dir/discourse/bin/bundle" config set with 'development'
ynh_exec_as "$app" --login MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set path 'vendor/bundle'
_exec_as_app_with_ruby_node "$install_dir/discourse/bin/bundle" config set with 'development'
_exec_as_app_with_ruby_node MAKEFLAGS=-j2 "$install_dir/discourse/bin/bundle" install --jobs 2
# On ARM architecture, replace bundled libpsl by system native libpsl
# because the provided binary isn't compatible
@ -174,8 +174,8 @@ pushd "$install_dir/discourse"
ynh_use_nodejs
ynh_npm install --location=global terser
ynh_npm install --location=global uglify-js
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn install --production --frozen-lockfile
ynh_exec_warn_less ynh_exec_as "$app" "$ynh_node_load_PATH" yarn cache clean
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn install --production --frozen-lockfile
ynh_exec_warn_less _exec_as_app_with_ruby_node yarn cache clean
popd
#=================================================
@ -185,8 +185,8 @@ popd
ynh_script_progression --message="Preparing the database..."
pushd "$install_dir/discourse"
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
ynh_exec_warn_less ynh_exec_as "$app" --login RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake db:migrate
ynh_exec_warn_less _exec_as_app_with_ruby_node RAILS_ENV=production "$install_dir/discourse/bin/bundle" exec rake themes:update assets:precompile
popd
#=================================================