95 lines
1.4 KiB
Bash
Executable File
95 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
# Use this script to check which pkgs in a overlay might
|
|
# be redundant - are in overlays other than the tested one
|
|
|
|
# Arguments:
|
|
# 1 - overlay
|
|
|
|
# depends (heavily) on eix (1)
|
|
|
|
# Some eix options used here:
|
|
# --exact
|
|
# --force-color
|
|
# --in-overlay
|
|
# --only-in-overlay
|
|
# --only-names
|
|
# --remote
|
|
# --remote2
|
|
|
|
|
|
trap 'exit 128' INT
|
|
|
|
|
|
bold="$(tput bold)"
|
|
red="$(tput setaf 1)"
|
|
green="$(tput setaf 2)"
|
|
white="$(tput setaf 7)"
|
|
reset="$(tput sgr0)"
|
|
|
|
|
|
ok_msg() {
|
|
echo "${bold}${green}* ${white}${1}${reset}"
|
|
}
|
|
|
|
err_msg() {
|
|
echo "${bold}${red}* ${white}${1}${reset}"
|
|
}
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: planarchaos OVERLAY
|
|
Show redundant pkgs
|
|
|
|
Options:
|
|
-h show help
|
|
|
|
EOF
|
|
}
|
|
|
|
use_eix() {
|
|
EIX_LIMIT=0 eix --remote --remote2 "${@}"
|
|
}
|
|
|
|
|
|
if ! command -v eix >/dev/null
|
|
then
|
|
err_msg "No eix!"
|
|
exit 1
|
|
fi
|
|
|
|
case "${1}" in
|
|
-h | --help )
|
|
usage
|
|
exit 0
|
|
;;
|
|
-* )
|
|
usage
|
|
exit 1
|
|
;;
|
|
"" )
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
|
|
ov_pkgs="$(use_eix --only-names --in-overlay "${1}")"
|
|
known_unique="$(use_eix --only-in-overlay "${1}")"
|
|
|
|
nnuniq=0
|
|
|
|
|
|
for pkg in ${ov_pkgs}
|
|
do
|
|
# check if pkg is not in known_unique (other overlys have it)
|
|
if [ "${known_unique#*${pkg}}" = "${known_unique}" ]
|
|
then
|
|
nnuniq=$((nnuniq + 1))
|
|
echo
|
|
ok_msg "Package ${nnuniq} ${pkg}:"
|
|
use_eix --exact --force-color "${pkg}"
|
|
fi
|
|
done
|