123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #!/usr/bin/env bash
- set -o pipefail
- set -o errexit
- set -o nounset
- # set -o xtrace
- # Set magic variables for current file & dir
- __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- __file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
- __base="$(basename ${__file} .sh)"
- __root="$(cd "$(dirname "${__dir}")" && pwd)"
- mode="${1:-}"
- if [ ! -f "${__root}/env.sh" ]; then
- cp "${__root}/env.example.sh" "${__root}/env.sh"
- fi
- if [ "${UPPYSERVER_DROPBOX_KEY:-}" = "" ] || [ "${UPPYSERVER_DROPBOX_KEY:-***}" = "***" ]; then
- source "${__root}/env.sh"
- fi
- if [ "${UPPYSERVER_DROPBOX_KEY:-}" = "" ] || [ "${UPPYSERVER_DROPBOX_KEY:-***}" = "***" ]; then
- echo "Env var UPPYSERVER_DROPBOX_KEY still had the example value '${UPPYSERVER_DROPBOX_KEY:-}'. "
- echo "Please save the actual secrets in '${__root}/env.sh' and try again"
- exit 1
- fi
- function killProcessListeningOnPort () {
- local port="${1}"
- lsof -n -i4TCP:${port} | awk '/LISTEN/ {print $2}' |xargs kill -9
- }
- function waitForPortOpen () {
- local port="${1}"
- local limit="${2:-60}"
- local attempts=0
- echo "waiting on port ${port} to open... "
- while ! echo exit | nc localhost ${port}; do
- let "attempts = attempts + 1"
- echo "still waiting on port ${port} to open... (${attempts} / ${limit}) "
- sleep 1
- if [ "${attempts}" -ge "${limit}" ]; then
- echo "--> Port did not open for ${limit} seconds. Aborting. "
- exit 1
- fi
- done
- }
- function cleanup_servers () {
- echo "--> Killing any server listening on port 4000"
- killProcessListeningOnPort 4000 || true
- echo "--> Killing any server listening on port 8080"
- killProcessListeningOnPort 8080 || true
- kill -9 ${tailPid}
- }
- if [ "${mode}" = "handle-servers" ]; then
- echo "--> Killing any server listening on port 4000"
- killProcessListeningOnPort 4000 || true
- echo "--> Killing any server listening on port 8080"
- killProcessListeningOnPort 8080 || true
- echo "--> Start webserver and uppy-server in the background"
- rm -f nohup.out || true
- touch nohup.out
- nohup npm run start &
- tail -f nohup.out &
- tailPid=${!}
- trap cleanup_servers EXIT
- fi
- echo "--> Wait for hexo webserver to be online"
- waitForPortOpen 4000
- echo "--> Wait for uppy-server to be online"
- waitForPortOpen 8080
- echo "--> Running acceptance tests"
- node test/multipart.spec.js
|