#!/usr/bin/env bash set -Eeuo pipefail IFS=$'\n\t' DEPLOY_PATH="${DEPLOY_PATH:-/opt/archivebox.demo}" DEPLOY_SERVICE="${DEPLOY_SERVICE:-archivebox}" DEPLOY_IMAGE="${DEPLOY_IMAGE:-archivebox/archivebox:dev}" DEPLOY_INTERVAL="${DEPLOY_INTERVAL:-60}" STATE_FILE="${STATE_FILE:-${DEPLOY_PATH}/.archivebox-dev-image.digest}" OVERRIDE_FILE="${OVERRIDE_FILE:-${DEPLOY_PATH}/.archivebox-deploy.override.yml}" cd "$DEPLOY_PATH" if [[ -f compose.yml ]]; then COMPOSE_FILE=compose.yml elif [[ -f compose.yaml ]]; then COMPOSE_FILE=compose.yaml elif [[ -f docker-compose.yml ]]; then COMPOSE_FILE=docker-compose.yml else echo "[X] No compose file found in $DEPLOY_PATH" >&2 exit 1 fi cat > "$OVERRIDE_FILE" < "$STATE_FILE" } mkdir -p "$(dirname "$STATE_FILE")" touch "$STATE_FILE" while :; do digest="$(remote_digest || true)" last_digest="$(cat "$STATE_FILE" 2>/dev/null || true)" if [[ -z "$digest" ]]; then echo "[!] Could not resolve ${DEPLOY_IMAGE}; retrying in ${DEPLOY_INTERVAL}s" >&2 elif [[ "$digest" != "$last_digest" ]]; then deploy_digest "$digest" else echo "[=] ${DEPLOY_IMAGE} already deployed at ${digest}" fi if [[ "${WATCH_ONCE:-0}" == "1" ]]; then break fi sleep "$DEPLOY_INTERVAL" done