mirror of
https://github.com/YunoHost-Apps/open-web-calendar_ynh.git
synced 2024-09-03 19:56:09 +02:00
94 lines
2.9 KiB
Text
94 lines
2.9 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
#=================================================
|
||
|
# GENERIC STARTING
|
||
|
#=================================================
|
||
|
# IMPORT GENERIC HELPERS
|
||
|
#=================================================
|
||
|
|
||
|
source /usr/share/yunohost/helpers
|
||
|
|
||
|
ynh_abort_if_errors
|
||
|
|
||
|
#=================================================
|
||
|
# RETRIEVE ARGUMENTS
|
||
|
#=================================================
|
||
|
|
||
|
install_dir=$(ynh_app_setting_get --app="$app" --key=install_dir)
|
||
|
|
||
|
#=================================================
|
||
|
# SPECIFIC GETTERS FOR TOML SHORT KEY
|
||
|
#=================================================
|
||
|
|
||
|
get__amount() {
|
||
|
# Here we can imagine to have an API call to stripe to know the amount of donation during a month
|
||
|
local amount=200
|
||
|
|
||
|
# It's possible to change some properties of the question by overriding it:
|
||
|
if [ "$amount" -gt 100 ]; then
|
||
|
cat << EOF
|
||
|
style: success
|
||
|
value: $amount
|
||
|
ask:
|
||
|
en: A lot of donation this month: **$amount €**
|
||
|
EOF
|
||
|
else
|
||
|
cat << EOF
|
||
|
style: danger
|
||
|
value: $amount
|
||
|
ask:
|
||
|
en: Not so much donation this month: $amount €
|
||
|
EOF
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
get__prices() {
|
||
|
local prices
|
||
|
prices="$(grep "DONATION\['" "$install_dir/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')"
|
||
|
if [ "$prices" == "," ]; then
|
||
|
# Return YNH_NULL if you prefer to not return a value at all.
|
||
|
echo YNH_NULL
|
||
|
else
|
||
|
echo "$prices"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
|
||
|
#=================================================
|
||
|
# SPECIFIC VALIDATORS FOR TOML SHORT KEYS
|
||
|
#=================================================
|
||
|
validate__publishable_key() {
|
||
|
|
||
|
# We can imagine here we test if the key is really a publishable key
|
||
|
(is_secret_key "$publishable_key") &&
|
||
|
echo 'This key seems to be a secret key'
|
||
|
}
|
||
|
|
||
|
#=================================================
|
||
|
# SPECIFIC SETTERS FOR TOML SHORT KEYS
|
||
|
#=================================================
|
||
|
set__prices() {
|
||
|
|
||
|
#---------------------------------------------
|
||
|
# IMPORTANT: setters are triggered only if a change is detected
|
||
|
#---------------------------------------------
|
||
|
for price in $(echo "$prices" | sed "s/,/ /"); do
|
||
|
frequency=$(echo "$price" | cut -d/ -f1)
|
||
|
currency=$(echo "$price" | cut -d/ -f2)
|
||
|
price_id=$(echo "$price" | cut -d/ -f3)
|
||
|
sed "d/DONATION\['$frequency'\]\['$currency'\]" "$install_dir/settings.py"
|
||
|
|
||
|
echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py"
|
||
|
done
|
||
|
|
||
|
#---------------------------------------------
|
||
|
# IMPORTANT: to be able to upgrade properly, you have to save the value in settings too
|
||
|
#---------------------------------------------
|
||
|
ynh_app_setting_set --app="$app" --key=prices --value="$prices"
|
||
|
}
|
||
|
|
||
|
#=================================================
|
||
|
# GENERIC FINALIZATION
|
||
|
#=================================================
|
||
|
ynh_app_config_run "$1"
|