diff --git a/sample-data.sh b/sample-data.sh index bbf46c98423820e849d9b0118cbc588a35d4c7a3..e3ea463427a1777257c3beb9c930fd7e1e34a75c 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}