update vaultwarden config and add a alias to alias file
This commit is contained in:
@@ -16,3 +16,48 @@ alias hugo-rebuild='rm -rf public/ && hugo server --appendPort=false --baseURL="
|
||||
# helpers for quickly editing aliases
|
||||
alias src='source ~/.bash_aliases'
|
||||
alias edit='vim /srv/configs/.bash_aliases'
|
||||
|
||||
# Docker Image Version Tag checker
|
||||
function _tagger() {
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: tag <image>:<tag>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Split image and tag safely
|
||||
local INPUT="$1"
|
||||
local REPO="${INPUT%%:*}"
|
||||
local TAG="${INPUT##*:}"
|
||||
|
||||
# If no tag provided, default to latest
|
||||
[ "$REPO" = "$TAG" ] && TAG="latest"
|
||||
|
||||
# Handle official library images
|
||||
local API_REPO="$REPO"
|
||||
[[ "$REPO" != *"/"* ]] && API_REPO="library/$REPO"
|
||||
|
||||
# 1. Grab the exact unique digest for the target tag
|
||||
local DIGEST
|
||||
DIGEST=$(curl -s "https://hub.docker.com/v2/repositories/${API_REPO}/tags/${TAG}" | jq -r '.digest // empty')
|
||||
|
||||
if [ -z "$DIGEST" ] || [ "$DIGEST" = "null" ]; then
|
||||
echo "Error: Image or tag not found on Docker Hub."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# 2. Get the sibling tag sharing the same digest, skipping text labels
|
||||
local VERSION
|
||||
VERSION=$(curl -s "https://hub.docker.com/v2/repositories/${API_REPO}/tags/?page_size=100" \
|
||||
| jq -r --arg dig "$DIGEST" \
|
||||
'.results[] | select(.digest == $dig) | .name' \
|
||||
| grep -E -v 'latest|alpine|slim|debian|bullseye|bookworm|ubuntu|test|rc|nightly' \
|
||||
| head -n 1)
|
||||
|
||||
# 3. Output results
|
||||
if [ -n "$VERSION" ]; then
|
||||
echo "${REPO}:${VERSION}"
|
||||
else
|
||||
echo "${REPO}:${TAG}"
|
||||
fi
|
||||
}
|
||||
alias tag='_tagger'
|
||||
Reference in New Issue
Block a user