Date: Thu, 20 Jul 2000 12:02:48 -0400 (EDT) From: abeaupre@chemcomp.com To: FreeBSD-gnats-submit@freebsd.org Subject: bin/20062: New (?) package management utilities Message-ID: <20000720160248.C0AF3A7@sky.chemcomp.com>
next in thread | raw e-mail | index | archive | help
>Number: 20062 >Category: bin >Synopsis: New (?) package management utilities >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Jul 20 09:10:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Antoine Beaupre >Release: FreeBSD 4.0-RELEASE i386 >Organization: Chemical Computing Group, Inc. >Environment: FreeBSD sky.chemcomp.com 4.0-RELEASE FreeBSD 4.0-RELEASE #7: Tue Jun 27 16:42:57 EDT 2000 root@sky.chemcomp.com:/usr/src/sys/compile/SKY i386 >Description: I have "coded" a few shell scripts to help me in the titanic task of managing packages under FreeBSD, and I think there would be place in the base system for this. These are basic shell scripts that make a heavy use of grep and ls and that are much faster than pkg_info(1) and that (you guessed it!) support regular expressions (yay!). Description of utilities: pkg_find [regexp] [displays names of matching packages] pkg_findBin [regexp] [displays names of packages which +CONTENTS file matches regexp] pkg_desc [regexp] [gives +DESC files of matching packages, uses pkg_find] pkg_plist [regexp] [idem with +CONTENTS file] One could add one called pkg_comment or something like that to give the short description of the package and/or merge the last 2 together since the code is the same. Only the displayed file is different. >How-To-Repeat: $ pkg_find em movemail-1.0 xemacs-mule-21.1.9 xemacs-mule-common-21.1.9 xemacs-mule-packages-1.1 xemacs-packages-1.1 $ pkg_findBin '\(apache\)\|\(xemacs\)' File found in: apache-1.3.12 xemacs-mule-21.1.9 xemacs-mule-common-21.1.9 xemacs-mule-packages-1.1 xemacs-packages-1.1 $ pkg_desc xemacs ... You get the picture.. >Fix: Source code (!): pkg_find (that's a hard one... :) ---- Cut Here ---- #! /bin/sh ls /var/db/pkg | grep $@ ---- Cut Here ---- pkg_findBin: ---- Cut Here ---- #! /bin/sh pkgDir="/var/db/pkg" echo "Matching packages:" for package in `ls $pkgDir` { grep -q $@ $pkgDir/$package/+CONTENTS && \ echo $package } ---- Cut Here ---- pkg_desc: ---- Cut Here ---- #! /bin/sh hits=`pkg_find $@` if [ ! -z "$hits" ] then echo "Matches:" echo echo $hits echo echo "To display package(s) description, press ENTER. Ctrl-C to cancel." read botch for hit in $hits do $PAGER /var/db/pkg/$hit/+DESC read -p "Press ENTER to continue" done else echo No match. fi ---- Cut Here ---- pkg_plist (could probably be merged with pkg_desc): ---- Cut Here ---- #! /bin/sh hits=`pkg_find $@` if [ ! -z "$hits" ] then echo "Matches:" echo echo $hits echo echo "To display package(s) description, press ENTER. Ctrl-C to cancel." read botch for hit in $hits do $PAGER /var/db/pkg/$hit/+CONTENTS read -p "Press ENTER to continue: " botch done else echo No match. fi ---- Cut Here ---- TODO: - Compatibility with pkg_info commandline and environnement. - Full pkg_info replacement?? - Merge pkg_desc pkg_plist and potential pkg_comment together >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000720160248.C0AF3A7>