fork 0k-charms
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

60 lines
1.4 KiB

# -*- mode: shell-script -*-
CONFIG_FILE=/data/gitea/conf/app.ini
ini() {
local action="$1"
shift
crudini "--$action" "$SERVICE_DATASTORE$CONFIG_FILE" "$@"
}
gitea_config_hash() {
config_hash=$(cat "$SERVICE_DATASTORE$CONFIG_FILE" | md5_compat) || exit 1
init-config-add "
$MASTER_BASE_SERVICE_NAME:
labels:
- compose.config_hash=$config_hash
"
}
join_by_dot() {
local IFS="."
echo "$*"
}
gitea:ini-make() {
local key val type
local sep=
[ -n "$1" ] && printf "\n[%s]\n" "$(IFS="."; echo "$*")"
while read-0 key type val; do
case "${type##*\!}" in
map|seq)
e "$val" | gitea:ini-make "$@" "$key" || return 1
continue
;;
bool)
val="${val%$'\n'}"
case "${val,,}" in
true|ok|yes|y)
val=true
;;
false|ko|nok|no|n)
val=false
;;
*)
die "Invalid value for ${WHITE}$key$NORMAL, please use a boolean value."
;;
esac
;;
str|*)
val="${val%$'\n'}"
;;
esac
key=${key//-/_}
key=${key^^}
printf "%s = %s\n" "$key" "$val"
done < <( yq -0 'to_entries | map([.key, .value | type, .value | to_yaml])[] | .[]' )
}