Scan for Gentoo eclass variables

Creates a Map of eclass names to eclass variables by scanning the
system for repositories and their respective eclasses. Runs `portageq`
to determine repository names and locations. Emits a warning if an
IOException is caught when attempting to run `portageq`.

This Map is passed via CheckSpec to AnalysisSpec and finally to
Parameters, where it is read by `checkUnusedAssignments` in order to
determine which variables can be safely ignored by this check.

Signed-off-by: hololeap <hololeap@users.noreply.github.com>
This commit is contained in:
hololeap 2023-08-05 15:16:30 -06:00
parent 08ae7ef836
commit 272ef819b9
No known key found for this signature in database
GPG key ID: 06B97EDD7A3D1E83
8 changed files with 58 additions and 18 deletions

View file

@ -2412,7 +2412,10 @@ allInternalVariables params =
genericInternalVariables ++
if shellType params == Ksh then kshInternalVariables else [] ++
if isPortageBuild params
then portageInternalVariables (getInheritedEclasses (rootNode params))
then
let eclasses = getInheritedEclasses $ rootNode params
gMap = gentooData params
in portageInternalVariables eclasses gMap
else []
prop_checkUnused0 = verifyNotTree checkUnusedAssignments "var=foo; echo $var"