mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
55 lines
1.7 KiB
Text
55 lines
1.7 KiB
Text
# Manage a fail of the script
|
|
#
|
|
# [internal]
|
|
#
|
|
# usage:
|
|
# ynh_exit_properly is used only by the helper ynh_abort_if_errors.
|
|
# You should not use it directly.
|
|
# Instead, add to your script:
|
|
# ynh_clean_setup () {
|
|
# instructions...
|
|
# }
|
|
#
|
|
# This function provide a way to clean some residual of installation that not managed by remove script.
|
|
#
|
|
# It prints a warning to inform that the script was failed, and execute the ynh_clean_setup function if used in the app script
|
|
#
|
|
ynh_exit_properly () {
|
|
local exit_code=$?
|
|
if [ "$exit_code" -eq 0 ]; then
|
|
exit 0 # Exit without error if the script ended correctly
|
|
fi
|
|
|
|
trap '' EXIT # Ignore new exit signals
|
|
set +eu # Do not exit anymore if a command fail or if a variable is empty
|
|
|
|
echo -e "!!\n $app's script has encountered an error. Its execution was cancelled.\n!!" >&2
|
|
|
|
if type -t ynh_clean_setup > /dev/null; then # Check if the function exist in the app script.
|
|
ynh_clean_setup # Call the function to do specific cleaning for the app.
|
|
fi
|
|
|
|
ynh_die # Exit with error status
|
|
}
|
|
|
|
# Exits if an error occurs during the execution of the script.
|
|
#
|
|
# usage: ynh_abort_if_errors
|
|
#
|
|
# This configure the rest of the script execution such that, if an error occurs
|
|
# or if an empty variable is used, the execution of the script stops
|
|
# immediately and a call to `ynh_clean_setup` is triggered if it has been
|
|
# defined by your script.
|
|
#
|
|
ynh_abort_if_errors () {
|
|
set -eu # Exit if a command fail, and if a variable is used unset.
|
|
trap ynh_exit_properly EXIT # Capturing exit signals on shell script
|
|
}
|
|
|
|
# Fetch the Debian release codename
|
|
#
|
|
# usage: ynh_get_debian_release
|
|
# | ret: The Debian release codename (i.e. jessie, stretch, ...)
|
|
ynh_get_debian_release () {
|
|
echo $(lsb_release --codename --short)
|
|
}
|