Lines 26-31
Link Here
|
26 |
-h | --help) MODE="showhelp";; |
26 |
-h | --help) MODE="showhelp";; |
27 |
-v | --version) MODE="showversion";; |
27 |
-v | --version) MODE="showversion";; |
28 |
-i | --info) MODE="showdesc";; |
28 |
-i | --info) MODE="showdesc";; |
|
|
29 |
-I | --info-installed) MODE="showinstdesc";; |
29 |
-l | --local) SCOPE="local";; |
30 |
-l | --local) SCOPE="local";; |
30 |
-g | --global) SCOPE="global";; |
31 |
-g | --global) SCOPE="global";; |
31 |
-a | --active) MODE="showflags";; |
32 |
-a | --active) MODE="showflags";; |
Lines 317-322
Link Here
|
317 |
fi |
318 |
fi |
318 |
} |
319 |
} |
319 |
|
320 |
|
|
|
321 |
# Works like showdesc() but displays only descriptions of which the appropriate |
322 |
# ebuild is installed and prints the name of those packages. |
323 |
showinstdesc() { |
324 |
local descdir |
325 |
local current_desc |
326 |
local args |
327 |
local foundone=0 |
328 |
|
329 |
args="${*:-*}" |
330 |
|
331 |
if [ -z "${SCOPE}" ]; then |
332 |
SCOPE="global" showinstdesc ${args} |
333 |
echo |
334 |
SCOPE="local" showinstdesc ${args} |
335 |
return |
336 |
fi |
337 |
|
338 |
descdir="$(get_portdir)/profiles" |
339 |
|
340 |
[ "${SCOPE}" == "global" ] && echo "global use flags (searching: ${args})" |
341 |
[ "${SCOPE}" == "local" ] && echo "local use flags (searching: ${args})" |
342 |
echo "************************************************************" |
343 |
|
344 |
if [ "${args}" == "*" ]; then |
345 |
args="$(get_useflaglist | sort -u)" |
346 |
fi |
347 |
|
348 |
set ${args} |
349 |
|
350 |
while [ -n "${1}" ]; do |
351 |
if [ "${SCOPE}" == "global" ]; then |
352 |
desc=`grep "^${1} *-" "${descdir}/use.desc"` |
353 |
if [ ! -z "$desc" ]; then |
354 |
get_flagstatus "${1}" |
355 |
echo $desc |
356 |
# get list of installed packages matching this USE flag. |
357 |
# equery does only display package names if it is called in |
358 |
# backtick operators |
359 |
packages="`equery hasuse -i ${1}`" |
360 |
echo -n "Installed packages matching this USE flag: " |
361 |
if [ -z "$packages" ]; then |
362 |
foundone=0 |
363 |
echo "none" |
364 |
else |
365 |
foundone=1 |
366 |
echo |
367 |
echo $packages | tr ' ' '\n' | while read line; do |
368 |
# cut off package's version information |
369 |
echo $line | sed -e 's/\-[0-9].*$//' |
370 |
done |
371 |
fi |
372 |
fi |
373 |
fi |
374 |
# local flags are a bit more complicated as there can be multiple |
375 |
# entries per flag and we can't pipe into printf |
376 |
if [ "${SCOPE}" == "local" ]; then |
377 |
OIFS="$IFS" |
378 |
IFS=$'\n' |
379 |
for line in `grep ":${1} *-" "${descdir}/use.local.desc" \ |
380 |
| sed -e "s/^\([^:]\+\):\(${1}\) *- *\(.\+\)/\1|\2|\3/g"`; do |
381 |
pkg="$(echo $line | cut -d\| -f 1)" |
382 |
flag="$(echo $line | cut -d\| -f 2)" |
383 |
desc="$(echo $line | cut -d\| -f 3)" |
384 |
# print name only if package is installed |
385 |
if [ `eix -Ie ${pkg} | wc -l` -gt 1 ]; then |
386 |
foundone=1 |
387 |
get_flagstatus "${flag}" |
388 |
printf "%s (%s):\n%s\n\n" "${flag}" "${pkg}" "${desc}" |
389 |
fi |
390 |
done |
391 |
IFS="$OIFS" |
392 |
fi |
393 |
shift |
394 |
done |
395 |
|
396 |
if [ ${foundone} == 0 ]; then |
397 |
echo "no matching entries found" |
398 |
fi |
399 |
} |
400 |
|
320 |
# show a list of all currently active flags and where they are activated |
401 |
# show a list of all currently active flags and where they are activated |
321 |
showflags() { |
402 |
showflags() { |
322 |
local args |
403 |
local args |