aboutsummaryrefslogtreecommitdiff
path: root/scripts/ynh_install_ruby__2
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ynh_install_ruby__2')
-rw-r--r--scripts/ynh_install_ruby__2372
1 files changed, 186 insertions, 186 deletions
diff --git a/scripts/ynh_install_ruby__2 b/scripts/ynh_install_ruby__2
index 982d0b2..a2a83d0 100644
--- a/scripts/ynh_install_ruby__2
+++ b/scripts/ynh_install_ruby__2
@@ -2,9 +2,9 @@
ynh_ruby_try_bash_extension() {
if [ -x src/configure ]; then
- src/configure && make -C src || {
- ynh_print_info --message="Optional bash extension failed to build, but things will still work normally."
- }
+ src/configure && make -C src || {
+ ynh_print_info --message="Optional bash extension failed to build, but things will still work normally."
+ }
fi
}
@@ -42,13 +42,13 @@ build_pkg_dependencies="$build_pkg_dependencies $build_ruby_dependencies"
# Finally, to start a Ruby service with the correct version, 2 solutions
# Either the app is dependent of Ruby or gem, but does not called it directly.
# In such situation, you need to load PATH
-# `Environment="__YNH_RUBY_LOAD_PATH__"`
-# `ExecStart=__FINALPATH__/my_app`
-# You will replace __YNH_RUBY_LOAD_PATH__ with $ynh_ruby_load_path
+# `Environment="__YNH_RUBY_LOAD_PATH__"`
+# `ExecStart=__FINALPATH__/my_app`
+# You will replace __YNH_RUBY_LOAD_PATH__ with $ynh_ruby_load_path
#
# Or Ruby start the app directly, then you don't need to load the PATH variable
-# `ExecStart=__YNH_RUBY__ my_app run`
-# You will replace __YNH_RUBY__ with $ynh_ruby
+# `ExecStart=__YNH_RUBY__ my_app run`
+# You will replace __YNH_RUBY__ with $ynh_ruby
#
#
# one other variable is also available
@@ -58,32 +58,32 @@ build_pkg_dependencies="$build_pkg_dependencies $build_ruby_dependencies"
#
# Requires YunoHost version 3.2.2 or higher.
ynh_use_ruby () {
- ruby_version=$(ynh_app_setting_get --app=$app --key=ruby_version)
+ ruby_version=$(ynh_app_setting_get --app=$app --key=ruby_version)
- # Get the absolute path of this version of Ruby
- ruby_path="$ruby_version_path/$YNH_APP_INSTANCE_NAME/bin"
+ # Get the absolute path of this version of Ruby
+ ruby_path="$ruby_version_path/$YNH_APP_INSTANCE_NAME/bin"
- # Allow alias to be used into bash script
- shopt -s expand_aliases
+ # Allow alias to be used into bash script
+ shopt -s expand_aliases
- # Create an alias for the specific version of Ruby and a variable as fallback
- ynh_ruby="$ruby_path/ruby"
- alias ynh_ruby="$ynh_ruby"
- # And gem
- ynh_gem="$ruby_path/gem"
- alias ynh_gem="$ynh_gem"
+ # Create an alias for the specific version of Ruby and a variable as fallback
+ ynh_ruby="$ruby_path/ruby"
+ alias ynh_ruby="$ynh_ruby"
+ # And gem
+ ynh_gem="$ruby_path/gem"
+ alias ynh_gem="$ynh_gem"
- # Load the path of this version of Ruby in $PATH
- if [[ :$PATH: != *":$ruby_path"* ]]; then
- PATH="$ruby_path:$PATH"
- fi
- # Create an alias to easily load the PATH
- ynh_ruby_load_path="PATH=$PATH"
+ # Load the path of this version of Ruby in $PATH
+ if [[ :$PATH: != *":$ruby_path"* ]]; then
+ PATH="$ruby_path:$PATH"
+ fi
+ # Create an alias to easily load the PATH
+ ynh_ruby_load_path="PATH=$PATH"
- # Sets the local application-specific Ruby version
- pushd $final_path
- $rbenv_install_dir/bin/rbenv local $ruby_version
- popd
+ # Sets the local application-specific Ruby version
+ pushd $final_path
+ $rbenv_install_dir/bin/rbenv local $ruby_version
+ popd
}
# Install a specific version of Ruby
@@ -103,145 +103,145 @@ ynh_use_ruby () {
#
# Requires YunoHost version 3.2.2 or higher.
ynh_install_ruby () {
- # Declare an array to define the options of this helper.
- local legacy_args=v
- local -A args_array=( [v]=ruby_version= )
- local ruby_version
- # Manage arguments with getopts
- ynh_handle_getopts_args "$@"
+ # Declare an array to define the options of this helper.
+ local legacy_args=v
+ local -A args_array=( [v]=ruby_version= )
+ local ruby_version
+ # Manage arguments with getopts
+ ynh_handle_getopts_args "$@"
- # Load rbenv path in PATH
- local CLEAR_PATH="$rbenv_install_dir/bin:$PATH"
+ # Load rbenv path in PATH
+ local CLEAR_PATH="$rbenv_install_dir/bin:$PATH"
- # Remove /usr/local/bin in PATH in case of Ruby prior installation
- PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
+ # Remove /usr/local/bin in PATH in case of Ruby prior installation
+ PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
- # Move an existing Ruby binary, to avoid to block rbenv
- test -x /usr/bin/ruby && mv /usr/bin/ruby /usr/bin/ruby_rbenv
+ # Move an existing Ruby binary, to avoid to block rbenv
+ test -x /usr/bin/ruby && mv /usr/bin/ruby /usr/bin/ruby_rbenv
- # Install or update rbenv
- rbenv="$(command -v rbenv $rbenv_install_dir/bin/rbenv | grep "$rbenv_install_dir/bin/rbenv" | head -1)"
- if [ -n "$rbenv" ]; then
- ynh_print_info --message="rbenv already seems installed in \`$rbenv'."
- pushd "${rbenv%/*/*}"
- if git remote -v 2>/dev/null | grep "https://github.com/rbenv/rbenv.git"; then
- ynh_print_info --message="Trying to update with git..."
- git pull -q --tags origin master
- ynh_ruby_try_bash_extension
- else
- ynh_print_info --message="Reinstalling rbenv with git..."
- cd ..
- ynh_secure_remove --file=$rbenv_install_dir
- mkdir -p $rbenv_install_dir
- cd $rbenv_install_dir
- git init -q
- git remote add -f -t master origin https://github.com/rbenv/rbenv.git > /dev/null 2>&1
- git checkout -q -b master origin/master
- ynh_ruby_try_bash_extension
- rbenv=$rbenv_install_dir/bin/rbenv
- fi
- popd
- else
- ynh_print_info --message="Installing rbenv with git..."
- mkdir -p $rbenv_install_dir
- pushd $rbenv_install_dir
- git init -q
- git remote add -f -t master origin https://github.com/rbenv/rbenv.git > /dev/null 2>&1
- git checkout -q -b master origin/master
- ynh_ruby_try_bash_extension
- rbenv=$rbenv_install_dir/bin/rbenv
- popd
- fi
+ # Install or update rbenv
+ rbenv="$(command -v rbenv $rbenv_install_dir/bin/rbenv | grep "$rbenv_install_dir/bin/rbenv" | head -1)"
+ if [ -n "$rbenv" ]; then
+ ynh_print_info --message="rbenv already seems installed in \`$rbenv'."
+ pushd "${rbenv%/*/*}"
+ if git remote -v 2>/dev/null | grep "https://github.com/rbenv/rbenv.git"; then
+ ynh_print_info --message="Trying to update with git..."
+ git pull -q --tags origin master
+ ynh_ruby_try_bash_extension
+ else
+ ynh_print_info --message="Reinstalling rbenv with git..."
+ cd ..
+ ynh_secure_remove --file=$rbenv_install_dir
+ mkdir -p $rbenv_install_dir
+ cd $rbenv_install_dir
+ git init -q
+ git remote add -f -t master origin https://github.com/rbenv/rbenv.git > /dev/null 2>&1
+ git checkout -q -b master origin/master
+ ynh_ruby_try_bash_extension
+ rbenv=$rbenv_install_dir/bin/rbenv
+ fi
+ popd
+ else
+ ynh_print_info --message="Installing rbenv with git..."
+ mkdir -p $rbenv_install_dir
+ pushd $rbenv_install_dir
+ git init -q
+ git remote add -f -t master origin https://github.com/rbenv/rbenv.git > /dev/null 2>&1
+ git checkout -q -b master origin/master
+ ynh_ruby_try_bash_extension
+ rbenv=$rbenv_install_dir/bin/rbenv
+ popd
+ fi
- ruby_build="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-install rbenv-install | head -1)"
- if [ -n "$ruby_build" ]; then
- ynh_print_info --message="\`rbenv install' command already available in \`$ruby_build'."
- pushd "${ruby_build%/*/*}"
- if git remote -v 2>/dev/null | grep "https://github.com/rbenv/ruby-build.git"; then
- ynh_print_info --message="Trying to update rbenv with git..."
- git pull -q origin master
- fi
- popd
- else
- ynh_print_info --message="Installing ruby-build with git..."
- mkdir -p "${rbenv_install_dir}/plugins"
- git clone -q https://github.com/rbenv/ruby-build.git "${rbenv_install_dir}/plugins/ruby-build"
- fi
+ ruby_build="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-install rbenv-install | head -1)"
+ if [ -n "$ruby_build" ]; then
+ ynh_print_info --message="\`rbenv install' command already available in \`$ruby_build'."
+ pushd "${ruby_build%/*/*}"
+ if git remote -v 2>/dev/null | grep "https://github.com/rbenv/ruby-build.git"; then
+ ynh_print_info --message="Trying to update rbenv with git..."
+ git pull -q origin master
+ fi
+ popd
+ else
+ ynh_print_info --message="Installing ruby-build with git..."
+ mkdir -p "${rbenv_install_dir}/plugins"
+ git clone -q https://github.com/rbenv/ruby-build.git "${rbenv_install_dir}/plugins/ruby-build"
+ fi
- rbenv_alias="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-alias rbenv-alias | head -1)"
- if [ -n "$rbenv_alias" ]; then
- ynh_print_info --message="\`rbenv alias' command already available in \`$rbenv_alias'."
- pushd "${rbenv_alias%/*/*}"
- if git remote -v 2>/dev/null | grep "https://github.com/tpope/rbenv-aliases.git"; then
- ynh_print_info --message="Trying to update rbenv-aliases with git..."
- git pull -q origin master
- fi
- popd
- else
- ynh_print_info --message="Installing rbenv-aliases with git..."
- mkdir -p "${rbenv_install_dir}/plugins"
- git clone -q https://github.com/tpope/rbenv-aliases.git "${rbenv_install_dir}/plugins/rbenv-aliase"
- fi
+ rbenv_alias="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-alias rbenv-alias | head -1)"
+ if [ -n "$rbenv_alias" ]; then
+ ynh_print_info --message="\`rbenv alias' command already available in \`$rbenv_alias'."
+ pushd "${rbenv_alias%/*/*}"
+ if git remote -v 2>/dev/null | grep "https://github.com/tpope/rbenv-aliases.git"; then
+ ynh_print_info --message="Trying to update rbenv-aliases with git..."
+ git pull -q origin master
+ fi
+ popd
+ else
+ ynh_print_info --message="Installing rbenv-aliases with git..."
+ mkdir -p "${rbenv_install_dir}/plugins"
+ git clone -q https://github.com/tpope/rbenv-aliases.git "${rbenv_install_dir}/plugins/rbenv-aliase"
+ fi
- rbenv_latest="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-latest rbenv-latest | head -1)"
- if [ -n "$rbenv_latest" ]; then
- ynh_print_info --message="\`rbenv latest' command already available in \`$rbenv_latest'."
- pushd "${rbenv_latest%/*/*}"
- if git remote -v 2>/dev/null | grep "https://github.com/momo-lab/xxenv-latest.git"; then
- ynh_print_info --message="Trying to update xxenv-latest with git..."
- git pull -q origin master
- fi
- popd
- else
- ynh_print_info --message="Installing xxenv-latest with git..."
- mkdir -p "${rbenv_install_dir}/plugins"
- git clone -q https://github.com/momo-lab/xxenv-latest.git "${rbenv_install_dir}/plugins/xxenv-latest"
- fi
+ rbenv_latest="$(command -v "$rbenv_install_dir"/plugins/*/bin/rbenv-latest rbenv-latest | head -1)"
+ if [ -n "$rbenv_latest" ]; then
+ ynh_print_info --message="\`rbenv latest' command already available in \`$rbenv_latest'."
+ pushd "${rbenv_latest%/*/*}"
+ if git remote -v 2>/dev/null | grep "https://github.com/momo-lab/xxenv-latest.git"; then
+ ynh_print_info --message="Trying to update xxenv-latest with git..."
+ git pull -q origin master
+ fi
+ popd
+ else
+ ynh_print_info --message="Installing xxenv-latest with git..."
+ mkdir -p "${rbenv_install_dir}/plugins"
+ git clone -q https://github.com/momo-lab/xxenv-latest.git "${rbenv_install_dir}/plugins/xxenv-latest"
+ fi
- # Enable caching
- mkdir -p "${rbenv_install_dir}/cache"
+ # Enable caching
+ mkdir -p "${rbenv_install_dir}/cache"
- # Create shims directory if needed
- mkdir -p "${rbenv_install_dir}/shims"
+ # Create shims directory if needed
+ mkdir -p "${rbenv_install_dir}/shims"
- # Restore /usr/local/bin in PATH
- PATH=$CLEAR_PATH
+ # Restore /usr/local/bin in PATH
+ PATH=$CLEAR_PATH
- # And replace the old Ruby binary
- test -x /usr/bin/ruby_rbenv && mv /usr/bin/ruby_rbenv /usr/bin/ruby
+ # And replace the old Ruby binary
+ test -x /usr/bin/ruby_rbenv && mv /usr/bin/ruby_rbenv /usr/bin/ruby
- # Install the requested version of Ruby
- local final_ruby_version=$(rbenv latest --print $ruby_version)
- if ! [ -n "$final_ruby_version" ]; then
- final_ruby_version=$ruby_version
- fi
- ynh_print_info --message="Installing Ruby-$final_ruby_version"
- CONFIGURE_OPTS="--disable-install-doc --with-jemalloc" MAKE_OPTS="-j2" rbenv install --skip-existing $final_ruby_version > /dev/null 2>&1
+ # Install the requested version of Ruby
+ local final_ruby_version=$(rbenv latest --print $ruby_version)
+ if ! [ -n "$final_ruby_version" ]; then
+ final_ruby_version=$ruby_version
+ fi
+ ynh_print_info --message="Installing Ruby-$final_ruby_version"
+ CONFIGURE_OPTS="--disable-install-doc --with-jemalloc" MAKE_OPTS="-j2" rbenv install --skip-existing $final_ruby_version > /dev/null 2>&1
- # Store ruby_version into the config of this app
- ynh_app_setting_set --app=$YNH_APP_INSTANCE_NAME --key=ruby_version --value=$final_ruby_version
+ # Store ruby_version into the config of this app
+ ynh_app_setting_set --app=$YNH_APP_INSTANCE_NAME --key=ruby_version --value=$final_ruby_version
- # Remove app virtualenv
- if `rbenv alias --list | grep --quiet "$YNH_APP_INSTANCE_NAME " 1>/dev/null 2>&1`
- then
- rbenv alias $YNH_APP_INSTANCE_NAME --remove
- fi
+ # Remove app virtualenv
+ if `rbenv alias --list | grep --quiet "$YNH_APP_INSTANCE_NAME " 1>/dev/null 2>&1`
+ then
+ rbenv alias $YNH_APP_INSTANCE_NAME --remove
+ fi
- # Create app virtualenv
- rbenv alias $YNH_APP_INSTANCE_NAME $final_ruby_version
+ # Create app virtualenv
+ rbenv alias $YNH_APP_INSTANCE_NAME $final_ruby_version
- # Cleanup Ruby versions
- ynh_cleanup_ruby
+ # Cleanup Ruby versions
+ ynh_cleanup_ruby
- # Set environment for Ruby users
- echo "#rbenv
+ # Set environment for Ruby users
+ echo "#rbenv
export RBENV_ROOT=$rbenv_install_dir
export PATH=\"$rbenv_install_dir/bin:$PATH\"
eval \"\$(rbenv init -)\"
#rbenv" > /etc/profile.d/rbenv.sh
- # Load the environment
- eval "$(rbenv init -)"
+ # Load the environment
+ eval "$(rbenv init -)"
}
# Remove the version of Ruby used by the app.
@@ -250,21 +250,21 @@ eval \"\$(rbenv init -)\"
#
# usage: ynh_remove_ruby
ynh_remove_ruby () {
- local ruby_version=$(ynh_app_setting_get --app=$YNH_APP_INSTANCE_NAME --key=ruby_version)
+ local ruby_version=$(ynh_app_setting_get --app=$YNH_APP_INSTANCE_NAME --key=ruby_version)
- # Load rbenv path in PATH
- local CLEAR_PATH="$rbenv_install_dir/bin:$PATH"
+ # Load rbenv path in PATH
+ local CLEAR_PATH="$rbenv_install_dir/bin:$PATH"
- # Remove /usr/local/bin in PATH in case of Ruby prior installation
- PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
+ # Remove /usr/local/bin in PATH in case of Ruby prior installation
+ PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
- rbenv alias $YNH_APP_INSTANCE_NAME --remove
+ rbenv alias $YNH_APP_INSTANCE_NAME --remove
- # Remove the line for this app
- ynh_app_setting_delete --app=$YNH_APP_INSTANCE_NAME --key=ruby_version
+ # Remove the line for this app
+ ynh_app_setting_delete --app=$YNH_APP_INSTANCE_NAME --key=ruby_version
- # Cleanup Ruby versions
- ynh_cleanup_ruby
+ # Cleanup Ruby versions
+ ynh_cleanup_ruby
}
# Remove no more needed versions of Ruby used by the app.
@@ -276,35 +276,35 @@ ynh_remove_ruby () {
# usage: ynh_cleanup_ruby
ynh_cleanup_ruby () {
- # List required Ruby versions
- local installed_apps=$(yunohost app list | grep -oP 'id: \K.*$')
- local required_ruby_versions=""
- for installed_app in $installed_apps
- do
- local installed_app_ruby_version=$(ynh_app_setting_get --app=$installed_app --key="ruby_version")
- if [[ $installed_app_ruby_version ]]
- then
- required_ruby_versions="${installed_app_ruby_version}\n${required_ruby_versions}"
- fi
- done
-
- # Remove no more needed Ruby versions
- local installed_ruby_versions=$(rbenv versions --bare --skip-aliases | grep -Ev '/')
- for installed_ruby_version in $installed_ruby_versions
- do
- if ! `echo ${required_ruby_versions} | grep "${installed_ruby_version}" 1>/dev/null 2>&1`
- then
- ynh_print_info --message="Removing of Ruby-$installed_ruby_version"
- $rbenv_install_dir/bin/rbenv uninstall --force $installed_ruby_version
- fi
- done
+ # List required Ruby versions
+ local installed_apps=$(yunohost app list | grep -oP 'id: \K.*$')
+ local required_ruby_versions=""
+ for installed_app in $installed_apps
+ do
+ local installed_app_ruby_version=$(ynh_app_setting_get --app=$installed_app --key="ruby_version")
+ if [[ $installed_app_ruby_version ]]
+ then
+ required_ruby_versions="${installed_app_ruby_version}\n${required_ruby_versions}"
+ fi
+ done
+
+ # Remove no more needed Ruby versions
+ local installed_ruby_versions=$(rbenv versions --bare --skip-aliases | grep -Ev '/')
+ for installed_ruby_version in $installed_ruby_versions
+ do
+ if ! `echo ${required_ruby_versions} | grep "${installed_ruby_version}" 1>/dev/null 2>&1`
+ then
+ ynh_print_info --message="Removing of Ruby-$installed_ruby_version"
+ $rbenv_install_dir/bin/rbenv uninstall --force $installed_ruby_version
+ fi
+ done
- # If none Ruby version is required
- if [[ ! $required_ruby_versions ]]
- then
- # Remove rbenv environment configuration
- ynh_print_info --message="Removing of rbenv-$rbenv_version"
- ynh_secure_remove --file="$rbenv_install_dir"
- ynh_secure_remove --file="/etc/profile.d/rbenv.sh"
- fi
+ # If none Ruby version is required
+ if [[ ! $required_ruby_versions ]]
+ then
+ # Remove rbenv environment configuration
+ ynh_print_info --message="Removing of rbenv-$rbenv_version"
+ ynh_secure_remove --file="$rbenv_install_dir"
+ ynh_secure_remove --file="/etc/profile.d/rbenv.sh"
+ fi
}