X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-list;h=7ea697bf1e04ae1323dd33b373f3e9a04d561fca;hb=2ac486ab18adbbb84563eafc0d67fa8da6ca7822;hp=471a2809a2e370f2372f7661cb326d1c089232a0;hpb=183c681069951ee7c2382aacc927916cf912a4e5;p=zpackage diff --git a/zpm-list b/zpm-list index 471a280..7ea697b 100755 --- a/zpm-list +++ b/zpm-list @@ -4,28 +4,28 @@ verbose=0 nameonly=0 +latestonly=1 -while getopts :s:f:vn opt; do +while getopts :s:f:vnIF: opt; do case $opt in f) pkgfile="$OPTARG" ;; s) status="$OPTARG" ;; + I) status=installed ;; v) verbose=1 ;; n) nameonly=1 ;; + a) latestonly=0 ;; + F) filter="$OPTARG" ;; esac done shift $(( OPTIND - 1)) -: ${pkgfile:=$ZPMDB} +: ${pkgfile:=${ZPMDB:-/var/lib/zpm/local.db}} if [ -z "$pkgfile" ]; then echo "must specify package file" exit 1 fi -if [ -n "$status" ]; then - status=$(zpm quote "$status") -fi - if [ $nameonly -eq 0 ]; then cols="pkgid" else @@ -37,15 +37,20 @@ if [ $verbose -eq 1 ]; then fi if [ -n "$status" ]; then - where="where status = '$status'" + status=$(zpm quote "$status") + where="and status = '$status'" +fi + +if [ -n "$filter" ]; then + where="$where and ($filter)" fi pkgid=$1 if [ -n "$pkgid" ]; then eval $(zpm parse -E "$pkgid") - if [ -n "$package" ]; then - package=$(zpm quote "$package") + if [ -n "$name" ]; then + package=$(zpm quote "$name") where="$where and package = '$package'" fi if [ -n "$version" ]; then @@ -60,7 +65,10 @@ fi zpm shell $pkgfile <&2 +fi