diff options
Diffstat (limited to 'src/lspkg')
-rwxr-xr-x | src/lspkg | 64 |
1 files changed, 42 insertions, 22 deletions
@@ -1,7 +1,6 @@ #!/bin/bash # -# lspkg v0.2: view installed and contents of -# slackware packages +# lspkg v0.3: view installed and contents of slackware packages # # feedback: rhatto at riseup.net | gpl # @@ -17,25 +16,33 @@ # this program; if not, write to the Free Software Foundation, Inc., 59 Temple # Place - Suite 330, Boston, MA 02111-1307, USA # -# -# -v, --view: view installed package contents -# -p, --print: print the contents of a package file -# -r, --remove: remove matching packages -# -s, --search: search a file under installed packages -# -# todo: -# -# -d, --description: show matching packages' descriptions -# -h, --help: show usage -# -function usage { - echo "usage: $0 [-v|-d|-s|-p expression]" +COMMON="/usr/libexec/simplepkg/common.sh" + +if [ -f "$COMMON" ]; then + source $COMMON +else + echo "error: file $COMMON found, check your `basename $0` installation" exit 1 +fi + +function usage { + echo "usage: `basename $0` [option expression]" } -if [[ "$1" = "-v" ]]; then - if [[ ! -z "$2" ]]; then +if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then + usage + echo " +options are: + + -v, --view: view installed package contents + -p, --print: print the contents of a package file + -r, --remove: remove matching packages + -s, --search: search a file under installed packages + -d, --description: show matching packages' descriptions +" +elif [ "$1" == "-v" ] || [ "$1" == "--view" ] ; then + if [ ! -z "$2" ]; then if $(ls /var/log/packages/$2* &> /dev/null); then for file in $(ls /var/log/packages/$2*); do less $file @@ -44,22 +51,35 @@ if [[ "$1" = "-v" ]]; then fi else usage + exit 1 fi -elif [[ "$1" = "-p" ]]; then - if [ -f $2 ]; then +elif [ "$1" == "-p" ] && [ "$1" == "--print" ]; then + if [ -f "$2" ]; then tar ztvf $2 else echo $2: file not found fi -elif [[ "$1" == "-r" ]]; then +elif [ "$1" == "-r" ] && [ "$1" == "--remove" ]; then if [ ! -z "$2" ]; then if `ls /var/log/packages/$1* &> /dev/null`; then removepkg /var/log/packages/$1* fi fi -elif [[ "$1" == "-s" ]]; then - if [[ ! -z "$2" ]]; then +elif [ "$1" == "-s" ] || [ "$1" == "--search" ]; then + if [ ! -z "$2" ]; then grep $2 /var/log/packages/* fi +elif [ "$1" == "-d" ] || [ "$1" == "--description" ]; then + if [ ! -z "$1" ]; then + for file in `lspkg $2`; do + name="`package_name $file.tgz`" + echo "package description for $name:" + echo "" + grep -e "^$name:" $file | sed -e "s/^$name:/ /" + done + else + usage + exit 1 + fi else if `ls /var/log/packages/$1* &> /dev/null`; then ls /var/log/packages/$1* |