#!/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 }