mirror of
https://github.com/YunoHost-Apps/synapse_ynh.git
synced 2024-09-03 20:26:38 +02:00
Update config
This commit is contained in:
parent
c7d3eedcaa
commit
3b9218c93f
1 changed files with 100 additions and 42 deletions
106
scripts/config
106
scripts/config
|
@ -28,24 +28,91 @@ get__registrations_require_3pid() {
|
||||||
echo "${registrations_require_3pid}"
|
echo "${registrations_require_3pid}"
|
||||||
}
|
}
|
||||||
|
|
||||||
set__registrations_require_3pid() {
|
# set__registrations_require_3pid() this function is setting datas for registrations_require_3pid field and allowed_local_3pids_(email/msisdn)
|
||||||
# sed -z do the trick on this king of multline replacement
|
# it consist on comment or not "registrations_require_3pid:", " - email" and/or " - msisdn"
|
||||||
case ${registrations_require_3pid} in
|
# then depending on the "registrations_require_3pid" value it comment or not "allowed_local_3pids:" lines
|
||||||
email)
|
# and generate all it sub configuration :
|
||||||
|
#
|
||||||
|
# allowed_local_3pids:
|
||||||
|
# - medium: email
|
||||||
|
# pattern: *
|
||||||
|
# ...
|
||||||
|
# - medium: msisdn
|
||||||
|
# pattern: *
|
||||||
|
#
|
||||||
|
# sed -z and \n as new line carracter do the trick on this kind of multline replacement.
|
||||||
|
|
||||||
|
set__registrations_require_3pid() {
|
||||||
|
|
||||||
|
# search pattern to replace (it correspond to the complete section)
|
||||||
|
allowedLocal3pids="s;#?([^\S\n]*allowed_local_3pids:)\n(#?([^\S\n]*-[^\S\n]*medium:[^\S\n]*(email|msisdn)\n)#?([^\S\n]*pattern:[^\S\n]*[^\n]*\n))*;"
|
||||||
|
|
||||||
|
case ${registrations_require_3pid} in
|
||||||
|
'email')
|
||||||
|
# registrations_require_3pid: part
|
||||||
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1\2#\3|" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1\2#\3|" "/etc/matrix-$app/homeserver.yaml"
|
||||||
|
|
||||||
|
# allowed_local_3pids: part
|
||||||
|
allowedLocal3pids=${allowedLocal3pids}"\1"
|
||||||
|
|
||||||
|
readarray -td, arr3pidemail < <(echo ${allowed_local_3pids_email});
|
||||||
|
for pidemail in "${arr3pidemail[@]}"; do
|
||||||
|
# add it to regex substitution part
|
||||||
|
allowedLocal3pids=${allowedLocal3pids}"\n - medium: email";
|
||||||
|
allowedLocal3pids=${allowedLocal3pids}"\n pattern: '$(echo ${pidemail})'";
|
||||||
|
done;
|
||||||
;;
|
;;
|
||||||
msisdn)
|
|
||||||
|
'msisdn')
|
||||||
|
# registrations_require_3pid: part
|
||||||
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1#\2\3|" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1#\2\3|" "/etc/matrix-$app/homeserver.yaml"
|
||||||
|
|
||||||
|
# allowed_local_3pids: part
|
||||||
|
allowedLocal3pids="${allowedLocal3pids}\1"
|
||||||
|
|
||||||
|
readarray -td, arr3pidmsisdn < <(echo ${allowed_local_3pids_msisdn});
|
||||||
|
for pidmsisdn in "${arr3pidmsisdn[@]}"; do
|
||||||
|
# add it to regex substitution part
|
||||||
|
allowedLocal3pids=${allowedLocal3pids}"\n - medium: msisdn";
|
||||||
|
allowedLocal3pids=${allowedLocal3pids}"\n pattern: '$(echo ${pidmsisdn})'";
|
||||||
|
done;
|
||||||
;;
|
;;
|
||||||
|
|
||||||
'email&msisdn')
|
'email&msisdn')
|
||||||
|
# registrations_require_3pid: part
|
||||||
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1\2\3|" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|\1\2\3|" "/etc/matrix-$app/homeserver.yaml"
|
||||||
|
|
||||||
|
# allowed_local_3pids: part
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\1"
|
||||||
|
|
||||||
|
readarray -td, arr3pidemail < <(echo ${allowed_local_3pids_email});
|
||||||
|
for pidemail in "${arr3pidemail[@]}"; do
|
||||||
|
# add it to regex substitution part
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\n - medium: email";
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\n pattern: '$(echo ${pidemail})'";
|
||||||
|
done;
|
||||||
|
|
||||||
|
readarray -td, arr3pidmsisdn < <(echo ${allowed_local_3pids_msisdn});
|
||||||
|
for pidmsisdn in "${arr3pidmsisdn[@]}"; do
|
||||||
|
# add it to regex substitution part
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\n - medium: msisdn";
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\n pattern: '$(echo ${pidmsisdn})'";
|
||||||
|
done;
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|#\1#\2#\3|" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "s|#?([^\S\n]*registrations_require_3pid:\n)#?([^\S\n]*-[^\S\n]*email\n)#?([^\S\n]*-[^\S\n]*msisdn)|#\1#\2#\3|" "/etc/matrix-$app/homeserver.yaml";
|
||||||
|
|
||||||
|
# empty fields and comment registration
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})#\1"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# finalize regex then apply sed command on the homeserver conf file
|
||||||
|
allowedLocal3pids="$(echo ${allowedLocal3pids})\n;";
|
||||||
|
sed -i -z -r "${allowedLocal3pids}" "/etc/matrix-$app/homeserver.yaml"
|
||||||
|
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=registrations_require_3pid --value="${registrations_require_3pid}"
|
ynh_app_setting_set --app=$app --key=registrations_require_3pid --value="${registrations_require_3pid}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +122,7 @@ get__allowed_local_3pids_email() {
|
||||||
}
|
}
|
||||||
|
|
||||||
set__allowed_local_3pids_email() {
|
set__allowed_local_3pids_email() {
|
||||||
if [ -z ${registrations_require_3pid} ] ; then
|
set__registrations_require_3pid;
|
||||||
sed -i -z -r "s|#?([^\S\n]*allowed_local_3pids:\n)#?([^\S\n]*-[^\S\n]*medium: email\n)#?([^\S\n]*pattern:[^\S\n]*')([^']*)('\n)#?([^\S\n]*-[^\S\n]*medium: msisdn\n)#?([^\S\n]*pattern: ')([^']*)('?)|#\1#\2#\3\4\5#\6#\7\8\9|" "/etc/matrix-$app/homeserver.yaml"
|
|
||||||
else
|
|
||||||
sed -i -z -r "s|#?([^\S\n]*allowed_local_3pids:\n)#?([^\S\n]*-[^\S\n]*medium: email\n)#?([^\S\n]*pattern:[^\S\n]*')([^']*)('\n)#?([^\S\n]*-[^\S\n]*medium: msisdn\n)#?([^\S\n]*pattern: ')([^']*)('?)|\1#\2#\3EMAIL\5#\6#\7\8\9|" "/etc/matrix-$app/homeserver.yaml"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=allowed_local_3pids_email --value="${allowed_local_3pids_email}"
|
ynh_app_setting_set --app=$app --key=allowed_local_3pids_email --value="${allowed_local_3pids_email}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,11 +132,7 @@ get__allowed_local_3pids_msisdn() {
|
||||||
}
|
}
|
||||||
|
|
||||||
set__allowed_local_3pids_msisdn() {
|
set__allowed_local_3pids_msisdn() {
|
||||||
if [ -z ${registrations_require_3pid} ] ; then
|
set__registrations_require_3pid;
|
||||||
sed -i -z -r "s|#?([^\S\n]*allowed_local_3pids:\n)#?([^\S\n]*-[^\S\n]*medium: email\n)#?([^\S\n]*pattern:[^\S\n]*')([^']*)('\n)#?([^\S\n]*-[^\S\n]*medium: msisdn\n)#?([^\S\n]*pattern: ')([^']*)('?)|#\1#\2#\3\4\5#\6#\7\8\9|" "/etc/matrix-$app/homeserver.yaml"
|
|
||||||
else
|
|
||||||
sed -i -z -r "s|#?([^\S\n]*allowed_local_3pids:\n)#?([^\S\n]*-[^\S\n]*medium: email\n)#?([^\S\n]*pattern:[^\S\n]*')([^']*)('\n)#?([^\S\n]*-[^\S\n]*medium: msisdn\n)#?([^\S\n]*pattern: ')([^']*)('?)|\1#\2#\3\4\5#\6#\7MSISDN\9|" "/etc/matrix-$app/homeserver.yaml"
|
|
||||||
fi
|
|
||||||
ynh_app_setting_set --app=$app --key=allowed_local_3pids_msisdn --value="${allowed_local_3pids_msisdn}"
|
ynh_app_setting_set --app=$app --key=allowed_local_3pids_msisdn --value="${allowed_local_3pids_msisdn}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,19 +144,19 @@ get__auto_join_rooms() {
|
||||||
set__auto_join_rooms() {
|
set__auto_join_rooms() {
|
||||||
|
|
||||||
if [ -z ${auto_join_rooms} ] ; then
|
if [ -z ${auto_join_rooms} ] ; then
|
||||||
# remove all values comment header ans example value
|
# remove all values comment header and example value
|
||||||
sed -i -z -r "s|#?([^\S\n]*auto_join_rooms:\n)#?([^\S\n]*-[^\S\n]*"[^\"]*"\n)*|#\1# - "#example:example.com"\n\n|" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "s|#?([^\S\n]*auto_join_rooms:\n)#?([^\S\n]*-[^\n]*\n)*|#\1# - \"#example:example.com\"\n|" "/etc/matrix-$app/homeserver.yaml"
|
||||||
else
|
else
|
||||||
|
|
||||||
IFS=' ' read -r -a arrroom <<< "${auto_join_rooms}";
|
readarray -td, arrroom < <(echo ${auto_join_rooms});
|
||||||
|
|
||||||
# print header then all space separated values
|
# print header then all space separated values
|
||||||
myregex='s|#?([^\S\n]*auto_join_rooms:)#?([^\S\n]*-[^\S\n]*"[^\"]*"\n)*|#\1';
|
autoJoinRooms="s|#?([^\S\n]*auto_join_rooms:)\n(#?[^\S\n]*-[^\n]*\n)*|\1";
|
||||||
for room in "${arrroom[@]}"; do
|
for room in "${arrroom[@]}"; do
|
||||||
myregex="${myregex}\n - ${room}";
|
autoJoinRooms="${autoJoinRooms}\n - '$(echo ${room})'";
|
||||||
done;
|
done;
|
||||||
myregex="${myregex}\n\n|";
|
autoJoinRooms="${autoJoinRooms}\n|";
|
||||||
sed -i -z -r "${myregex}" "/etc/matrix-$app/homeserver.yaml"
|
sed -i -z -r "${autoJoinRooms}" "/etc/matrix-$app/homeserver.yaml"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=auto_join_rooms --value="${auto_join_rooms}"
|
ynh_app_setting_set --app=$app --key=auto_join_rooms --value="${auto_join_rooms}"
|
||||||
|
|
Loading…
Add table
Reference in a new issue