On Monday 31 March 2008, 11:31, Andrew Gaydenko wrote:

> I agree, my English is ugly. I'll try to explain. Saying "viewer" I
> mean something like this:
>
> logviewer kdelibs
>
> will "produce" the same output as, say,
>
> less /usr/portage/kde-base/kdelibs/ChangeLog
>
> You see, it is impossible to remember all packages' dirs. Of course, I
> can use 'q' or 'eix' to find a dir and then type in a long 'less ...'
> command. But, well, why do all these 'eix' and 'q' exist? I think to
> save some users' time. Is my intention more clear now? :-)

Neil will surely provide an adequate answer, however, if your needs 
aren't too sophisticated, you could put together something like

$ cat logviewer.sh
#!/bin/bash

if [ -z "$1" ]; then
  echo "Must specify package name!" >&2
  exit 1
fi

p=`eix --only-names -e "$1"`

if [ -z "$p" ]; then
  echo "$1: No matches found" >&2
  exit 1
else
  howmany=`echo "$p" | wc -l`
  if [ "$howmany" -gt 1 ]; then
    echo "Many packages with the same name, refine search string:" >&2
    echo "$p" >&2
    exit 1
  fi
fi

c="/usr/portage/${p}/ChangeLog"

if [ -z "$EDITOR" ]; then
  EDITOR=`which vi`
fi

"$EDITOR" "$c"
---------

You can also remove the "-e" from the eix line if you want approximate 
matching (that will require you to specify the category almost always 
though).
Hope this helps.
-- 
[email protected] mailing list

Reply via email to