aboutsummaryrefslogtreecommitdiff
path: root/fstest/testserver/init.d/TestSeafile
diff options
context:
space:
mode:
Diffstat (limited to 'fstest/testserver/init.d/TestSeafile')
-rwxr-xr-xfstest/testserver/init.d/TestSeafile72
1 files changed, 72 insertions, 0 deletions
diff --git a/fstest/testserver/init.d/TestSeafile b/fstest/testserver/init.d/TestSeafile
new file mode 100755
index 0000000..553e9d0
--- /dev/null
+++ b/fstest/testserver/init.d/TestSeafile
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+
+set -e
+
+# environment variables passed on docker-compose
+export NAME=seafile7
+export MYSQL_ROOT_PASSWORD=pixenij4zacoguq0kopamid6
+export SEAFILE_ADMIN_EMAIL=seafile@rclone.org
+export SEAFILE_ADMIN_PASSWORD=pixenij4zacoguq0kopamid6
+export SEAFILE_IP=127.0.0.1
+export SEAFILE_PORT=8087
+export SEAFILE_TEST_DATA=${SEAFILE_TEST_DATA:-/tmp/seafile-test-data}
+export SEAFILE_VERSION=latest
+
+# make sure the data directory exists
+mkdir -p ${SEAFILE_TEST_DATA}/${NAME}
+
+# docker-compose project directory
+COMPOSE_DIR=$(dirname "$0")/seafile
+
+start() {
+ docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml up -d
+
+ # wait for Seafile server to start
+ seafile_endpoint="http://${SEAFILE_IP}:${SEAFILE_PORT}/"
+ wait_seconds=1
+ echo -n "Waiting for Seafile server to start"
+ for iterations in `seq 1 60`;
+ do
+ http_code=$(curl -s -o /dev/null -L -w '%{http_code}' "$seafile_endpoint" || true;)
+ if [ "$http_code" -eq 200 ]; then
+ echo
+ break
+ fi
+ echo -n "."
+ sleep $wait_seconds
+ done
+
+ # authentication token answer should be like: {"token":"dbf58423f1632b5b679a13b0929f1d0751d9250c"}
+ TOKEN=`curl --silent \
+ --data-urlencode username=${SEAFILE_ADMIN_EMAIL} -d password=${SEAFILE_ADMIN_PASSWORD} \
+ http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/auth-token/ \
+ | sed 's/^{"token":"\(.*\)"}$/\1/'`
+
+ # create default library
+ curl --silent -o /dev/null -X POST -H "Authorization: Token ${TOKEN}" "http://${SEAFILE_IP}:${SEAFILE_PORT}/api2/default-repo/"
+
+ echo _connect=${SEAFILE_IP}:${SEAFILE_PORT}
+ echo type=seafile
+ echo url=http://${SEAFILE_IP}:${SEAFILE_PORT}/
+ echo user=${SEAFILE_ADMIN_EMAIL}
+ echo pass=$(rclone obscure ${SEAFILE_ADMIN_PASSWORD})
+ echo library=My Library
+}
+
+stop() {
+ if status ; then
+ docker-compose --project-directory ${COMPOSE_DIR} --project-name ${NAME} --file ${COMPOSE_DIR}/docker-compose.yml down
+ fi
+}
+
+status() {
+ if docker ps --format "{{.Names}}" | grep ^${NAME}_seafile_1$ >/dev/null ; then
+ echo "$NAME running"
+ else
+ echo "$NAME not running"
+ return 1
+ fi
+ return 0
+}
+
+. $(dirname "$0")/run.bash