#!/bin/sh # zpm-list [-s status] [-vn] [ -f pkgfile ] [pkgid ...] verbose=0 nameonly=0 latestonly=1 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:-/var/lib/zpm/local.db}} if [ -z "$pkgfile" ]; then echo "must specify package file" exit 1 fi if [ $nameonly -eq 0 ]; then cols="pkgid" else cols="package" fi if [ $verbose -eq 1 ]; then cols="$cols,coalesce(status,'-')" fi if [ -n "$status" ]; then 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 "$name" ]; then package=$(zpm quote "$name") where="$where and package = '$package'" fi if [ -n "$version" ]; then version=$(zpm quote "$version") where="$where and version = '$version'" fi if [ -n "$release" ]; then release=$(zpm quote "$release") where="$where and release = '$release'" fi fi zpm shell $pkgfile <&2 fi