Aboutpkg: differenze tra le versioni
Da Slacky.eu.
m (adattato a GeSHi syntax) |
|
(Una versione intermedia di un altro utente non mostrate) | |
(Nessuna differenza)
|
Versione attuale delle 02:17, 8 mag 2011
Descrizione
Script molto comodo e utile, serve a controllare i pacchetti installati nel sistema e anche ad analizzarne il contenuto, veramente indispensabile.
Script
#!/bin/bash
#
# aboutpkg v. 0.1.0
#
# Copyright (c) 2005, 2006 Sergio Perticone <gall0ws@tiscali.it>.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification,
# are permitted provided that this copyright notice and the following
# disclaimer are retained.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#
# this script allows you to check (rapidly enough) the packages
# installed in your linux-box.
#
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
## packages directory:
DIR=/var/log/packages
test -z "$PAGER" && PAGER=less
## set the functions:
function usage() {
cat << USAGE
eg:
aboutpkg [ -a name ] [ -e name ] [ -s string ] [ -l ] [ -L ]
-d, --desc show package description (slack-desc)
-e, --examine examine the content of the packages
-l, --list show all packages by installation order
-L, --list-name show all packages by name
-s, --search [string] search the string in installed packages
-h, --help display this help and exit
USAGE
exit 0
}
function pack_search() {
[ -z "$1" ] && {
echo "which package are you searching for?"
exit 1
}
ls $DIR | grep -i $1
[ -z "`ls $DIR | grep -i $1`" ] && {
echo "the package doesn't seem to be installed."
}
exit 0
}
function pack_desc() {
[ -z "$1" ] && {
echo "which package are you searching for?"
exit 1
}
PACK=`ls $DIR | grep -i $1`
NAME="`echo $PACK | cut -f1 -d -`:"
[ -z "$PACK" ] && {
echo "no package found"
exit 0
}
cd $DIR
grep -A 11 DESCRIP $PACK | cut -d : -f2- | more # more(1) here is better than other pagers
cd $OLDPWD
exit 0
}
function pack_examine() {
[ -z "$1" ] && {
echo "which package are you searching for?"
exit 1
}
PACK=`ls $DIR | grep -i $1`
[ -z "$PACK" ] && {
echo "no package found"
exit 0
}
cd $DIR
$PAGER $PACK
cd $OLDPWD
exit 0
}
## so useless..
function packs_list_name() {
ls $DIR | $PAGER
exit 0
}
function packs_list() {
ls -tr $DIR | $PAGER
exit 0
}
function string_search() {
[ -z "$1" ] && {
echo "which string are you searching for?"
exit 1
}
grep $1 $DIR/* | cut -c 19-
[ -z "`grep $1 $DIR/*`" ] && {
echo "no strings found."
}
exit 0
}
# parser:
case $1 in
'-e'|'--examine')
pack_examine $2
;;
'-d'|'--desc')
pack_desc $2
;;
'-l'|'--list')
packs_list | $PAGER
;;
'-L'|'--list-name')
packs_list_name | $PAGER
;;
'-s'| '--search')
string_search $2
;;
'-h'|'--help')
usage
;;
-*)
echo "aboutpkg: invalid option: -- `echo $1 | cut -d - -f2- | cut -d - -f2`"
echo "Try \`aboutpkg --help' for more information."
exit 1
;;
*)
pack_search $1
;;
esac
## EOF ##
- Data: 05 Oct 2006
- Autore: Gallows
- Versione: 0.1.0