mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
helpers: add a new ynh_app_setting_set_default to replace the unecessarily complex 'if [ ${foo:-} ]' trick
This commit is contained in:
parent
dd8db1883a
commit
1b5074d857
2 changed files with 71 additions and 0 deletions
|
@ -52,6 +52,42 @@ ynh_app_setting_set() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set an application setting but only if the "$key" variable ain't set yet
|
||||||
|
#
|
||||||
|
# Note that it doesn't just define the setting but ALSO define the $foobar variable
|
||||||
|
#
|
||||||
|
# Hence it's meant as a replacement for this legacy overly complex syntax:
|
||||||
|
#
|
||||||
|
# if [ -z "${foo:-}" ]
|
||||||
|
# then
|
||||||
|
# foo="bar"
|
||||||
|
# ynh_app_setting_set --key="foo" --value="$foo"
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# usage: ynh_app_setting_set_default --app=app --key=key --value=value
|
||||||
|
# | arg: -a, --app= - the application id
|
||||||
|
# | arg: -k, --key= - the setting name to set
|
||||||
|
# | arg: -v, --value= - the default setting value to set
|
||||||
|
#
|
||||||
|
# Requires YunoHost version 11.1.16 or higher.
|
||||||
|
ynh_app_setting_set_default() {
|
||||||
|
local _globalapp=${app-:}
|
||||||
|
# Declare an array to define the options of this helper.
|
||||||
|
local legacy_args=akv
|
||||||
|
local -A args_array=([a]=app= [k]=key= [v]=value=)
|
||||||
|
local app
|
||||||
|
local key
|
||||||
|
local value
|
||||||
|
# Manage arguments with getopts
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
app="${app:-$_globalapp}"
|
||||||
|
|
||||||
|
if [ -z "${!key:-}" ]; then
|
||||||
|
eval $key=\$value
|
||||||
|
ynh_app_setting "set" "$app" "$key" "$value"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Delete an application setting
|
# Delete an application setting
|
||||||
#
|
#
|
||||||
# usage: ynh_app_setting_delete --app=app --key=key
|
# usage: ynh_app_setting_delete --app=app --key=key
|
||||||
|
|
|
@ -42,6 +42,41 @@ ynh_app_setting_set() {
|
||||||
ynh_app_setting "set" "$app" "$key" "$value"
|
ynh_app_setting "set" "$app" "$key" "$value"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set an application setting but only if the "$key" variable ain't set yet
|
||||||
|
#
|
||||||
|
# Note that it doesn't just define the setting but ALSO define the $foobar variable
|
||||||
|
#
|
||||||
|
# Hence it's meant as a replacement for this legacy overly complex syntax:
|
||||||
|
#
|
||||||
|
# if [ -z "${foo:-}" ]
|
||||||
|
# then
|
||||||
|
# foo="bar"
|
||||||
|
# ynh_app_setting_set --key="foo" --value="$foo"
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# usage: ynh_app_setting_set_default --app=app --key=key --value=value
|
||||||
|
# | arg: -a, --app= - the application id
|
||||||
|
# | arg: -k, --key= - the setting name to set
|
||||||
|
# | arg: -v, --value= - the default setting value to set
|
||||||
|
#
|
||||||
|
# Requires YunoHost version 11.1.16 or higher.
|
||||||
|
ynh_app_setting_set_default() {
|
||||||
|
# ============ Argument parsing =============
|
||||||
|
local _globalapp=${app-:}
|
||||||
|
local -A args_array=([a]=app= [k]=key= [v]=value=)
|
||||||
|
local app
|
||||||
|
local key
|
||||||
|
local value
|
||||||
|
ynh_handle_getopts_args "$@"
|
||||||
|
app="${app:-$_globalapp}"
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
if [ -z "${!key:-}" ]; then
|
||||||
|
eval $key=\$value
|
||||||
|
ynh_app_setting "set" "$app" "$key" "$value"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Delete an application setting
|
# Delete an application setting
|
||||||
#
|
#
|
||||||
# usage: ynh_app_setting_delete --app=app --key=key
|
# usage: ynh_app_setting_delete --app=app --key=key
|
||||||
|
|
Loading…
Add table
Reference in a new issue