#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
STOP=01
|
|
EXTRA_COMMANDS="generate_uci_conf"
|
|
|
|
TOPDIR=/usr/share/seafile
|
|
INSTALLPATH=$TOPDIR/seafile-server
|
|
|
|
uci_conf=/var/run/seafile/uci.conf
|
|
default_data_dir=$TOPDIR
|
|
|
|
seafile_server_latest_symlink=$TOPDIR/seafile-server-latest
|
|
seafile_data_dir_symlink=$TOPDIR/seafile-data
|
|
seahub_avatars_symlink=$INSTALLPATH/seahub/media/avatars
|
|
seahub_custom_media_symlink=$INSTALLPATH/seahub/media/custom
|
|
|
|
read_uci_section() {
|
|
local cfg="$1"
|
|
local data_dir
|
|
config_get data_dir "$cfg" data_dir "$default_data_dir"
|
|
uci_data_dir="$data_dir"
|
|
}
|
|
|
|
generate_uci_conf() {
|
|
local uci_data_dir="$default_data_dir"
|
|
|
|
config_load seafile-server
|
|
config_foreach read_uci_section seafile-server
|
|
|
|
mkdir -p "$uci_data_dir"
|
|
|
|
mkdir -p "${uci_conf%/*}"
|
|
cat <<- EOF > "$uci_conf"
|
|
export SEAFILE_UCI_CONF_DIR=/etc/seafile
|
|
export SEAFILE_UCI_DATA_DIR="$uci_data_dir"
|
|
export SEAFILE_UCI_LOG_DIR=/var/log/seafile
|
|
export SEAFILE_UCI_PID_DIR=/var/run/seafile
|
|
export SEAFILE_UCI_SOCKET_DIR=/var/run/seafile
|
|
EOF
|
|
|
|
[ ! -L "$seafile_server_latest_symlink" ] || rm -f "$seafile_server_latest_symlink"
|
|
[ ! -L "$seafile_data_dir_symlink" ] || rm -f "$seafile_data_dir_symlink"
|
|
|
|
[ ! -L "$seahub_avatars_symlink" ] || \
|
|
[ "$(readlink -f "$seahub_avatars_symlink")" = "$uci_data_dir/seahub-data/avatars" ] || \
|
|
ln -snf "$uci_data_dir/seahub-data/avatars" "$seahub_avatars_symlink"
|
|
|
|
[ ! -L "$seahub_custom_media_symlink" ] || \
|
|
[ "$(readlink -f "$seahub_custom_media_symlink")" = "$uci_data_dir/seahub-data/custom" ] || \
|
|
ln -snf "$uci_data_dir/seahub-data/custom" "$seahub_custom_media_symlink"
|
|
}
|
|
|
|
start() {
|
|
seafile start || return
|
|
if ! seahub start; then
|
|
seafile stop
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
seahub stop
|
|
seahub_ret=$?
|
|
seafile stop
|
|
seafile_ret=$?
|
|
[ "$seahub_ret" -eq 0 ] && [ "$seafile_ret" -eq 0 ]
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
sleep 2
|
|
start
|
|
}
|