dotfiles/.local/bin/check_testing.sh
2025-05-28 18:33:04 +02:00

48 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
COLOR_RESET="\e[0m"
COLOR_GREEN="\e[32m"
COLOR_YELLOW="\e[33m"
declare -A versions_by_package
while read -r repo name ver; do
key="$name"
versions_by_package["$key"]+="$repo:$ver "
done < <(expac --sync --listdelim=$'\n' "%r %n %v")
for pkg in "${!versions_by_package[@]}"; do
entries=(${versions_by_package["$pkg"]})
if [[ ${#entries[@]} -gt 1 ]]; then
versions=()
for entry in "${entries[@]}"; do
versions+=("${entry#*:}")
done
first_version="${versions[0]}"
all_equal=true
for ver in "${versions[@]}"; do
if [[ "$ver" != "$first_version" ]]; then
all_equal=false
break
fi
done
if $all_equal; then
printf "${COLOR_YELLOW}%-30s" "$pkg"
else
printf "${COLOR_GREEN}%-30s" "$pkg"
fi
for entry in "${entries[@]}"; do
repo="${entry%%:*}"
ver="${entry#*:}"
printf " %-15s %s" "$repo:" "$ver"
done
printf "${COLOR_RESET}\n"
fi
done