From fc10378f849dfb30e9b9fdf574b272295fc2c96a Mon Sep 17 00:00:00 2001
From: Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
Date: Thu, 30 Aug 2018 13:38:13 +0000
Subject: [PATCH] add backup of data volumes to sample-data.sh

---
 sample-data.sh | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/sample-data.sh b/sample-data.sh
index bbf46c9..e3ea463 100755
--- a/sample-data.sh
+++ b/sample-data.sh
@@ -1,19 +1,39 @@
 #!/bin/sh
 
+set +e
+
 ACTION=${1:-restore}
-FILE=${2:-VILLAS.mongoarchive}
+FILE=${2:-VILLAS.zip}
+
+NAME=$(basename $(pwd))
+VOLUME="${NAME}_files"
+
+VOLUME_PATH=$(docker volume inspect ${VOLUME} | jq -r .[0].Mountpoint)
 
 DOCKEROPTS="--interactive --tty --rm --network ${NETWORK} --volume $(pwd):/tmp"
 
+TEMP_PATH=$(mktemp -d)
+
+echo "Temp path: ${TEMP_PATH}"
+echo "Volume path: ${VOLUME_PATH}"
+
 case ${ACTION} in
   restore)
+    tar -C ${TEMP_PATH} -x -v -f ${FILE}
     docker-compose exec database mongo VILLAS --eval "db.dropDatabase()"
-    docker-compose exec -T database mongorestore --archive < ${FILE}
+    docker-compose exec -T database mongorestore --archive < ${TEMP_PATH}/database.mongoarchive
+
+    if [ -f ${TEMP_PATH}/files.tar.gz ]; then
+        rm -rf ${VOLUME_PATH}/*
+        tar -C ${VOLUME_PATH} -x -z -v -f ${TEMP_PATH}/files.tar.gz
+    fi
     ;;
 
   dump)
     # docker exec mangles stdout and stderr output. So we must use --quiet
-    docker-compose exec -T database mongodump --archive --quiet > ${FILE}
+    docker-compose exec -T database mongodump --archive --quiet > ${TEMP_PATH}/database.mongoarchive
+    tar -C ${VOLUME_PATH} -c -z -v -f ${TEMP_PATH}/files.tar.gz .
+    tar -C ${TEMP_PATH} -c -v -f ${FILE} .
     ;;
 
   *)
@@ -21,3 +41,4 @@ case ${ACTION} in
     ;;
 esac
 
+#rm -rf ${TMP_PATH}
-- 
GitLab