76 lines
2.2 KiB
Bash
76 lines
2.2 KiB
Bash
#!/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
|