forked from 0k/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
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])[] | .[]' )
|
|
}
|