#!/usr/bin/env bash set -e set -o nounset set -o pipefail # A wrapper script to run swift-hpa in a docker container and # mount the correct volumes, etc. # # Make sure to run 'hpa-init' first on this machine to setup # dependencies, if you have not done so already. # # To attach to a shell inside the container run: # `hpa bash` # # To run ansible vault commands inside the container run: # `hpa ansible-vault ...` # SCRIPTS=${SCRIPTS:-$HOME/.local/scripts} . "$SCRIPTS/utils/hpa/hpa.env" ############################## MAIN ############################## # Don't pull images if they're prefixed with 'localhost'. if echo "$HPA_DOCKER_IMAGE" | grep -vq "localhost"; then # Check if we should pull the image prior to running. last_pull="0" if [[ -f "$HPA_CONFIG_DIR/.lastpull" ]]; then last_pull=$(cat "$HPA_CONFIG_DIR/.lastpull") fi curr=$(date +%s) diff=$((curr - last_pull)) if [[ $HPA_AUTO_PULL == "1" ]] && [[ $diff -gt "$HPA_AUTO_PULL_INTERVAL" ]]; then . "$SCRIPTS/hpa-pull" "$HPA_AUTO_PULL_OPTS" fi fi podman run --rm --interactive --tty \ --volume "$HPA_CONFIG_DIR":/root/.config/hpa:ro \ --volume "$HPA_DATA_DIR":/root/.local/share/hpa:ro \ --volume "$HPA_CONSULTS_DIR":/consults \ --volume "$PWD":/root/project \ --secret "$HPA_VAULT_SECRET_KEY" \ "$HPA_DOCKER_IMAGE:$HPA_DOCKER_TAG" "$@"