#!/bin/bash set -eu readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" readonly TEST_IMAGE="cloudron/test:14.0.0" source ${SOURCE_DIR}/src/INFRA_VERSION # reset sudo timestamp to avoid wrong success sudo -k || sudo --reset-timestamp # checks if all scripts are sudo access scripts=("${SOURCE_DIR}/src/scripts/rmappdir.sh" \ "${SOURCE_DIR}/src/scripts/createappdir.sh" \ "${SOURCE_DIR}/src/scripts/setup_infra.sh" \ "${SOURCE_DIR}/src/scripts/reloadnginx.sh" \ "${SOURCE_DIR}/src/scripts/backupbox.sh" \ "${SOURCE_DIR}/src/scripts/backupapp.sh" \ "${SOURCE_DIR}/src/scripts/restoreapp.sh" \ "${SOURCE_DIR}/src/scripts/reboot.sh" \ "${SOURCE_DIR}/src/scripts/collectlogs.sh" \ "${SOURCE_DIR}/src/scripts/reloadcollectd.sh") for script in "${scripts[@]}"; do if [[ $(sudo -n "${script}" --check 2>/dev/null) != "OK" ]]; then echo "" echo "${script} does not have sudo access." echo "You have to add the lines below to /etc/sudoers.d/yellowtent." echo "" echo "Defaults!${script} env_keep=\"HOME BOX_ENV\"" echo "${USER} ALL=(ALL) NOPASSWD: ${script}" echo "" exit 1 fi done image_missing="" if ! docker inspect "${TEST_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${TEST_IMAGE}" image_missing="true" fi if ! docker inspect "${REDIS_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${REDIS_IMAGE}" image_missing="true" fi if ! docker inspect "${MYSQL_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${MYSQL_IMAGE}" image_missing="true" fi if ! docker inspect "${POSTGRESQL_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${POSTGRESQL_IMAGE}" image_missing="true" fi if ! docker inspect "${MONGODB_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${MONGODB_IMAGE}" image_missing="true" fi if ! docker inspect "${MAIL_IMAGE}" >/dev/null 2>/dev/null; then echo "docker pull ${MAIL_IMAGE}" image_missing="true" fi if [[ "${image_missing}" == "true" ]]; then echo "Pull above images before running tests" exit 1 fi