23 lines
713 B
Bash
Executable File
23 lines
713 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SSH_USER="${RSYNC_SSH_USER:?RSYNC_SSH_USER environment variable is required}"
|
|
HOST="${VPS_HOST:?VPS_HOST environment variable is required}"
|
|
REMOTE_ROOT="${REMOTE_ROOT:?REMOTE_ROOT environment variable is required}"
|
|
|
|
ssh -i ~/.ssh/id_rsa "${SSH_USER}@${HOST}" REMOTE_ROOT="${REMOTE_ROOT}" 'bash -s' <<'EOS'
|
|
set -euo pipefail
|
|
cd "${REMOTE_ROOT}" || exit 0
|
|
keep=3
|
|
mapfile -t all < <(ls -1 | grep -E "^(offline-argocd-|v[0-9]+\.)" | sort -V -r || true)
|
|
if [ "${#all[@]}" -le "$keep" ]; then
|
|
echo "Nothing to prune. Count=${#all[@]}"
|
|
exit 0
|
|
fi
|
|
to_delete=("${all[@]:keep}")
|
|
echo "Pruning old versions: ${to_delete[*]}"
|
|
for d in "${to_delete[@]}"; do
|
|
rm -rf -- "$d"
|
|
done
|
|
EOS
|