diff --git a/env/.local/scripts/hpa b/env/.local/scripts/hpa index 19a2d90..28ed7fc 100755 --- a/env/.local/scripts/hpa +++ b/env/.local/scripts/hpa @@ -10,26 +10,26 @@ set -o pipefail # Make sure to run 'hpa-init' first on this machine to setup # dependencies, if you have not done so already. -# XDG vars. -XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} -XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} - -# Docker vars. -HPA_DOCKER_IMAGE="git.housh.dev/michael/swift-hpa" -HPA_DOCKER_TAG=${HPA_DOCKER_TAG:-"latest"} - -# Local vars. -HPA_DATA_DIR="$XDG_DATA_HOME/hpa" -HPA_CONFIG_DIR="$XDG_CONFIG_HOME/hpa" -CONSULTS_DIR=${CONSULTS_DIR:-$HOME/work/consults} -HPA_VAULT_SECRET_KEY="${HPA_VAULT_SECRET_KEY:-vault-pass}" +SCRIPTS=${SCRIPTS:-$HOME/.local/scripts} +. "$SCRIPTS/utils/hpa/hpa.env" ############################## MAIN ############################## +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 + podman run --rm --interactive --tty \ --volume "$HPA_DATA_DIR/template":/template \ --volume "$HPA_DATA_DIR/playbook":/playbook \ --volume "$HPA_CONFIG_DIR":/config/hpa \ - --volume "$CONSULTS_DIR":/consults \ + --volume "$HPA_CONSULTS_DIR":/consults \ --secret "$HPA_VAULT_SECRET_KEY" \ "$HPA_DOCKER_IMAGE:$HPA_DOCKER_TAG" "$@" diff --git a/env/.local/scripts/hpa-pull b/env/.local/scripts/hpa-pull index abee42b..d64a562 100755 --- a/env/.local/scripts/hpa-pull +++ b/env/.local/scripts/hpa-pull @@ -105,3 +105,4 @@ fi [[ $docker_flag == "1" ]] && pull-docker [[ $playbook_flag == "1" ]] && pull-playbook [[ $template_flag == "1" ]] && pull-template +echo "$(date +%s)" >>$HPA_CONFIG_DIR/.lastpull diff --git a/env/.local/scripts/utils/hpa/hpa.env b/env/.local/scripts/utils/hpa/hpa.env index 88c4e37..1be9550 100755 --- a/env/.local/scripts/utils/hpa/hpa.env +++ b/env/.local/scripts/utils/hpa/hpa.env @@ -4,6 +4,8 @@ # # This allows them all to be set / declared in one place, then those # scripts just need to source this file to use them. +# +# All variables can be overriden by setting in your shell env. # XDG vars. XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} @@ -13,6 +15,12 @@ XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} HPA_DOCKER_IMAGE="git.housh.dev/michael/swift-hpa" HPA_DOCKER_TAG=${HPA_DOCKER_TAG:-"latest"} +# Auto pull options to be ran before running the hpa docker +# container, default is always pull new images and repositories. +HPA_AUTO_PULL=${HPA_AUTO_PULL:="1"} +HPA_AUTO_PULL_INTERVAL="3600" # 1 hour +HPA_AUTO_PULL_OPTS=${HPA_AUTO_PULL_OPTS:-"--all"} + HPA_CONFIG_DIR="$XDG_CONFIG_HOME/hpa" HPA_DATA_DIR="$XDG_DATA_HOME/hpa" HPA_PLAYBOOK_DIR="$HPA_DATA_DIR/playbook" @@ -25,6 +33,9 @@ HPA_CONSULT_ORIGIN_BASE_URL=${CONSULT_ORIGIN_BASE_URL:-"ssh://git@git.housh.dev: HPA_CONSULT_TEMPLATE_DIR=${HPA_DATA_DIR}/template HPA_CONSULT_TEMPLATE_URL="ssh://git@git.housh.dev:2222/hhe/consult-template.git" +export HPA_AUTO_PULL +export HPA_AUTO_PULL_INTERVAL +export HPA_AUTO_PULL_OPTS export HPA_CONSULTS_DIR export HPA_CONSULT_ORIGIN_BASE_URL export HPA_CONSULT_TEMPLATE_DIR