#!/bin/bash set -x LATEST=$SEAF/seafile-server-latest function ext_url { echo "${SEAF_URL:-http://$(hostname)}/seafhttp" } function patch_seahub_conf { KEY="FILE_SERVER_ROOT" ENTRY="$KEY = '$(ext_url)'" CONF="$SEAF/conf/seahub_settings.py" grep "$KEY" -i "$CONF" if [ $? -eq 1 ]; then echo "Patched seahub_settings.py: set $ENTRY" echo -e "\n$ENTRY" >> "$CONF" fi } function last_update { if [ -e "$LATEST/install_date" ]; then date -d $(cat "$LATEST/install_date") "+%s" else echo 1000000 fi } function timestamp { date +%Y-%m-%d > "$LATEST/install_date" } function revert { rm -rf "$LATEST" } ### Setup ### if [ ! -e "$LATEST" ]; then (>&2 echo This appears to be the fist run, installing..) trap revert ERR mkdir -p $SEAF/conf cp -f /etc/seafile/* /opt/seafile/conf/ /usr/local/sbin/upgrade main RES="$?" if [ "$RES" -eq 126 ]; then (>&2 echo Entering setup) INSTALLDIR=$(cat $SEAF/ahead) rm -rf $SEAF/ahead SETUP_ARGS="auto -n ${SEAF_NAME:-$(hostname)} -i $(hostname) -p 8082" if [ ! -z "$SEAF_MYSQL" ]; then $INSTALLDIR/setup-seafile-mysql.sh $SETUP_ARGS -o $SEAF_MYSQL_HOST -t ${SEAF_MYSQL_PORT:-3306} -u "${SEAF_MYSQL_USER:-root}" \ -w "$SEAF_MYSQL_PASS" -r "${SEAF_MYSQL_ROOT_PASS:-$SEAF_MYSQL_PASS}" -c ${SEAF_MYSQL_DB_CCNET:-ccnet} -s ${SEAF_MYSQL_DB_SEAF:-seafile} \ -b ${SEAF_MYSQL_DB_HUB:-seahub} else $INSTALLDIR/setup-seafile.sh $SETUP_ARGS fi cp -f /etc/seafile/* /opt/seafile/conf/ timestamp exit 0 fi if [ ! "$RES" -eq 1 ]; then exit 0 fi (>&2 echo "Installation failed") exit 1 else LAST_UPGRADE=$(last_update) SINCE_UPGRADE=$(((($(date "+%s") - $LAST_UPGRADE))/(60*60*24))) if [ $LAST_UPGRADE -gt 0 ] && [ "0$SEAF_UPGRADE_INTERVAL" -gt 0 ] && [ $SINCE_UPGRADE -gt "0$SEAF_UPGRADE_INTERVAL" ]; then (>&2 echo "It's been $SINCE_UPGRADE days since the last Upgrade\nPERFORMING UPGRADE NOW\nSet SEAF_UPGRADE_INTERVAL=0 disable automatic updates") /usr/local/sbin/upgrade main timestamp fi patch_seahub_conf fi