packageneedsme/packageneedsme.sh
Ervin Peters 644b60f8d0
Change --installed-eapi to --eapi ...
because there are Packages noch reinstalled on an EAPI change (no revbunp). So it would be better for this task to look up the current EAPI in tree.
Additionally I put the EAPI checks in a loop and look quietly for $1 as max EAPI to check for.
Ervin
2018-12-08 22:06:17 +01:00

42 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# This script will list all installed packages on a gentoo system
# without maintainer or old EAPI.
# depends on eix (and portage)
# License: GPL-2
# Maintainer: Jonas Stein
# Repository: https://github.com/jonasstein/packageneedsme
#
# Changelog and authors:
# 2017-11-22 add tree path detection (Nils Freydank)
# 2017-11-17 initial script (Jonas Stein)
# 2018-12-08 update loop and tree EAPI instead of installed EAPI
# also use the parameter $1 to set maxEAPI to look at(5)
MYPORTDIR="$(portageq get_repo_path / gentoo)"
declare -a INSTALLED # declare an array
INSTALLED=( $(qlist -RIC|grep gentoo| cut -f 1 -d":") )
echo "These installed packages have no maintainer. The package is waiting for you:"
for catpkg in "${INSTALLED[@]}"
do
grep -q "<!-- maintainer-needed -->" "${MYPORTDIR}"/$catpkg/metadata.xml && echo $catpkg
done
echo
echo "These installed packages use a very old EAPI. You can prepare a PR:"
maxEAPI=${1:-5} # currently in 12/2018 EAPI 5 is deprecated
for EAPI in $(seq 0 $maxEAPI); do
echo
echo "Check for EAPI $EAPI:"
INSTALLED=( $(EIX_LIMIT=0 eix --installed --in-overlay 0 --only-names --eapi $EAPI))
for catpkg in "${INSTALLED[@]}"
do
echo "EAPI=$EAPI $catpkg"
done
done