mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
etesync-server: rename to etebase
Signed-off-by: Peter Stadler <peter.stadler@student.uibk.ac.at>
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=82
|
||||
|
||||
USE_PROCD=1
|
||||
|
||||
ETEBASE_INI="/var/etc/etebase/server.ini"
|
||||
|
||||
|
||||
etebase_print_uci_allow_all_ips_of() {
|
||||
local ifstat="$(ifstatus "$1")"
|
||||
|
||||
for ip in $(echo "${ifstat}" | jsonfilter -e '@["ipv4-address"].*.address')
|
||||
do echo "allowed_host_${ip//[^0-9]/_} = ${ip}"
|
||||
done
|
||||
|
||||
for ip in $(echo "${ifstat}" | jsonfilter -e '@["ipv6-address"].*.address')
|
||||
do echo "allowed_host_${ip//[^0-9A-Fa-f]/_} = [${ip}]"
|
||||
done
|
||||
|
||||
for ip in $(echo "${ifstat}" | \
|
||||
jsonfilter -e '@["ipv6-prefix-assignment"].*["local-address"].address')
|
||||
do echo "allowed_host_${ip//[^0-9A-Fa-f]/_} = [${ip}]"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
etebase_validate_global() {
|
||||
cd /usr/share/etebase/ >/dev/null || return
|
||||
|
||||
uci_load_validate etebase django "global" "$1" \
|
||||
'secret_file:file:secret.txt' \
|
||||
'static_url:string:/etebase/static' \
|
||||
'language_code:string:en-us' \
|
||||
'time_zone:string:UTC' \
|
||||
'debug:bool:false' \
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
etebase_print_global() {
|
||||
printf "\n[global]\n"
|
||||
|
||||
echo "secret_file = ${secret_file}"
|
||||
echo "static_root = /www/etebase/static" #sic!
|
||||
echo "static_url = ${static_url}"
|
||||
echo "language_code = ${language_code}"
|
||||
echo "time_zone = ${time_zone}"
|
||||
echo "debug = ${debug}"
|
||||
}
|
||||
|
||||
|
||||
etebase_validate_allowed_hosts() {
|
||||
uci_load_validate etebase django "allowed_hosts" "$1" \
|
||||
'uci_allow_all_ips_of:network' \
|
||||
'allowed_host:host' \
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
etebase_print_allowed_hosts() {
|
||||
printf "\n[allowed_hosts]\n"
|
||||
|
||||
local iface
|
||||
for iface in ${uci_allow_all_ips_of}
|
||||
do etebase_print_uci_allow_all_ips_of "${iface}"
|
||||
done
|
||||
|
||||
local host
|
||||
for host in ${allowed_host}
|
||||
do echo "allowed_host_${host//[^0-9A-Za-z]/_} = ${host}"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
etebase_validate_database() {
|
||||
cd /usr/share/etebase/ >/dev/null || return
|
||||
|
||||
uci_load_validate etebase django "database" "$1" \
|
||||
'engine:hostname:django.db.backends.sqlite3' \
|
||||
'name:file:db.sqlite3' \
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
etebase_print_database() {
|
||||
printf "\n[database]\n"
|
||||
echo "engine = ${engine}"
|
||||
echo "name = ${name}"
|
||||
}
|
||||
|
||||
|
||||
etebase_init() { # This must print ONLY configuration lines:
|
||||
echo "; This file is re-created from /etc/config/etebase "
|
||||
etebase_validate_global etebase_print_global
|
||||
etebase_validate_allowed_hosts etebase_print_allowed_hosts
|
||||
etebase_validate_database etebase_print_database
|
||||
} >"${ETEBASE_INI}"
|
||||
|
||||
|
||||
start_service() {
|
||||
mkdir -p /var/etc/etebase/
|
||||
|
||||
etebase_init
|
||||
|
||||
logger -p 'daemon.info' -t 'etebase_init' 'starting ...'
|
||||
ln -sf /etc/uwsgi/vassals/etebase.available /var/etc/etebase/uwsgi.ini
|
||||
}
|
||||
|
||||
|
||||
stop_service() {
|
||||
rm -f /var/etc/etebase/uwsgi.ini "${ETEBASE_INI}"
|
||||
}
|
||||
|
||||
|
||||
reload_service() {
|
||||
etebase_init
|
||||
|
||||
logger -p 'daemon.info' -t 'etebase_init' 'reloading ...'
|
||||
kill -SIGHUP "$(cat "/var/etc/etebase/master.pid")" 2>/dev/null
|
||||
#if the server is in on-demand mode, the ini files are reloaded then, too.
|
||||
}
|
||||
|
||||
|
||||
service_triggers() {
|
||||
procd_open_validate
|
||||
etebase_validate_global "$@"
|
||||
etebase_validate_allowed_hosts "$@"
|
||||
etebase_validate_database "$@"
|
||||
procd_close_validate
|
||||
|
||||
config_load etebase
|
||||
config_list_foreach "allowed_hosts" "uci_allow_all_ips_of" procd_add_reload_interface_trigger
|
||||
procd_add_reload_trigger etebase
|
||||
}
|
||||
Reference in New Issue
Block a user